我发现上面的popen是最好的解决方案。它又快又脏而且有效
对于Unix机器上的Python2.6,我使用了以下命令
def GetLastNLines(self, n, fileName):
"""
Name: Get LastNLines
Description: Gets last n lines using Unix tail
Output: returns last n lines of a file
Keyword argument:
n -- number of last lines to return
filename -- Name of the file you need to tail into
"""
p=subprocess.Popen(['tail','-n',str(n),self.__fileName], stdout=subprocess.PIPE)
soutput,sinput=p.communicate()
return soutput
soutput将包含最后n行代码。要逐行遍历soutput,请执行以下操作:
for line in GetLastNLines(50,'myfile.log').split('\n'):
print line