搜索文件的最后X行的最有效方法?
发布于 2021-01-29 16:22:23
我有一个文件,但我不知道它会有多大(可能会很大,但是大小会相差很大)。我想搜索最后10行左右,以查看它们是否与字符串匹配。我需要尽快高效地执行此操作,并且想知道是否还有什么比以下更好的:
s = "foo"
last_bit = fileObj.readlines()[-10:]
for line in last_bit:
if line == s:
print "FOUND"
关注者
0
被浏览
145
1 个回答
-
# Tail from __future__ import with_statement find_str = "FIREFOX" # String to find fname = "g:/autoIt/ActiveWin.log_2" # File to check with open(fname, "r") as f: f.seek (0, 2) # Seek @ EOF fsize = f.tell() # Get Size f.seek (max (fsize-1024, 0), 0) # Set pos @ last n chars lines = f.readlines() # Read to end lines = lines[-10:] # Get last 10 lines # This returns True if any line is exactly find_str + "\n" print find_str + "\n" in lines # If you're searching for a substring for line in lines: if find_str in line: print True break