在python中搜索文件的最后x行的最有效方法

我有一个文件,但我不知道它会有多大(可能会很大,但是大小会相差很大)。我想搜索最后10行左右,以查看它们是否与字符串匹配。我需要尽快高效地执行此操作,并且想知道是否还有什么比以下更好的:


s = "foo"

last_bit = fileObj.readlines()[-10:]

for line in last_bit:

    if line == s:

        print "FOUND"


慕尼黑的夜晚无繁华
浏览 499回答 3
3回答

紫衣仙女

如果您在POSIX系统上运行Python,则可以使用“ tail -10”检索最后几行。这可能比编写自己的Python代码来获取最后10行要快。而不是直接打开文件,而是从命令“ tail -10 filename”打开管道。但是,如果您确定日志输出(例如,您知道永远不会有几百或数千个字符的非常长的行),则使用列出的“读取最后2KB”方法之一会很好。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python