如何自动刷新log.txt文件

时间:2015-02-18 18:15:51

标签: python updates

我正在为Minecraft服务器制作一个python程序,该服务器会自动出价达到一定价格的物品。在appdata / roaming / .minecraft / logs中有一个名为" latest.log"的聊天记录。这个日志不断更新,我的服务器上的每个人都在聊聊聊天。如果我打开它并查看文本,则日志不会自动更新(显然)。我如何使用python脚本打印日志中的每一行并自动更新?

我在Windows 8.1上使用Python 2.7.9

2 个答案:

答案 0 :(得分:0)

在写入(可能是服务器)的进程填充或刷新缓冲区之前,数据不会写入latest.log文件。可能没有任何方法可以在Python中改变它。最好的办法是看看你是否可以在每一行之后配置写入过程。

答案 1 :(得分:0)

所以,我尝试了一些事情并想通了我可以这样做来跟踪日志文件(不断更新)

def follow(thefile):
    thefile.seek(0,2)
    while True:
        line = thefile.readline()
        if not line:
            time.sleep(0.1)
            continue
        yield line

def beginread():
    loglines = follow(logfile)
    for line in loglines:
        print line

在IDLE中我会简单地启动名为beginread的函数。运行此程序后,它将在日志文件更新时不断打印日志文件。