我正在尝试创建一个框,告诉我文件文本是否被修改,如果修改它会打印出文本内部的新文本。这应该是一个无限循环(机器人睡眠,直到文本文件被修改)。
我已经尝试过这段代码,但它不起作用。
while True:
tfile1 = open("most_recent_follower.txt", "r")
SMRF1 = tfile1.readline()
if tfile1.readline() == SMRF1:
print(tfile1.readline())
但这完全不起作用......我是Python新手,有人可以帮助我吗?
答案 0 :(得分:0)
def read_file():
with open("most_recent_follower.txt", "r") as f:
SMRF1 = f.readlines()
return SMRF1
initial = read_file()
while True:
current = read_file()
if initial != current:
for line in current:
if line not in initial:
print(line)
initial = current
一次读取文件,以获得它的初始状态。然后不断重复读取文件。当它改变时,打印出它的内容。
我不知道你指的是什么机器人,但是这段代码和你的代码会不断读取文件。它似乎永远不会退出。
答案 1 :(得分:0)
我可能会建议将文件复制到安全的重复位置,并可能使用diff程序来确定当前文件是否与原始副本不同,并打印添加的行。如果您只想添加行,则可以尝试使用tail
你也可以使用像pyinotify这样的库只在文件系统检测到文件被修改时触发