检查文件是否在 Python 中被修改

Check if a file is modified in Python

我正在尝试创建一个框,告诉我文件文本是否被修改,如果它被修改,它会打印出其中的新文本。这应该是一个无限循环(机器人会休眠直到文本文件被修改)。

我试过这段代码,但它不起作用。

while True:
    tfile1 = open("most_recent_follower.txt", "r")
    SMRF1 = tfile1.readline()
    if tfile1.readline() == SMRF1:
        print(tfile1.readline())

但这完全行不通...我是 Python 的新手,有人可以帮助我吗?

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

一次性读取文件,获取其初始状态。然后不断重复读取文件。当它改变时,打印出它的内容。

我不知道你指的是什么机器人,但这段代码和你的代码会持续读取文件。它似乎永远不会退出。

我可能建议将文件复制到一个安全的复制位置,并可能使用 diff 程序来确定当前文件是否与原始副本不同,并打印添加的行。如果您只想附加行,您可以尝试使用像 tail

这样的实用程序

您也可以使用像 pyinotify 这样的库来仅在文件系统检测到文件已被修改时触发