私信  •  关注

Marko

Marko 最近创建的主题
Marko 最近回复了
12 年前
回复了 Marko 创建的主题 » python:从文件中读取最后的'n'行[重复]

我发现上面的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