我正在为Minecraft服务器制作一个python程序,该服务器会自动出价达到一定价格的物品。在appdata / roaming / .minecraft / logs中有一个名为" latest.log"的聊天记录。这个日志不断更新,我的服务器上的每个人都在聊聊聊天。如果我打开它并查看文本,则日志不会自动更新(显然)。我如何使用python脚本打印日志中的每一行并自动更新?
我在Windows 8.1上使用Python 2.7.9
答案 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的函数。运行此程序后,它将在日志文件更新时不断打印日志文件。