我有一个不断更新的文本文件 foo.txt
。我只想在文件更新时阅读 foo.txt
的最后一行。我有一个 while 循环不断打开文件并检查它。在循环内,我有一些代码打印文件的最后一行,然后将其存储在 lastmsg.txt
中。在下一次迭代中,它检查文件的最后一行是否不等于 lastmsg.txt
中存储的内容。如果两个值不相等(文件已更新并添加了新行),它将打印文件中的最后一条消息。这是代码
import time
while True:
fileHandle = open ("foo.txt","r" )
lineList = fileHandle.readlines()
fileHandle.close()
msg = lineList[len(lineList)-1]
if(open("lastmsg.txt", "r").read() != msg):
f = open("lastmsg.txt", "w")
f.write(msg)
print(msg)
time.sleep(0.5)
这似乎可行,但是,它会打印两次 msg
。所以如果abc
被修改为文件,输出将是
abc
abc
最佳答案
我添加了 f.close() 行,之后,它只打印一次 msg。
import time
while True:
fileHandle = open ("foo.txt","r" )
lineList = fileHandle.readlines()
fileHandle.close()
msg = lineList[-1]
if(open("lastmsg.txt", "r").read() != msg):
f = open("lastmsg.txt", "w")
f.write(msg)
f.close() # <---- new line
print(msg)
time.sleep(0.5)
关于python - 在两次打印输出中检查文本文件更新结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58487434/