如何自动刷新 log.txt 文件

How to auto-refresh a log.txt file

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

我在 Windows 8.1 和 Python 2.7.9

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

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

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 的函数。使用此程序 运行,它将在日志文件更新时不断打印行。