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

2024-10-01 09:37:19 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我试过这个代码,但不起作用。在

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

但这完全不起作用。。。我是Python新手,有人能帮我吗?在


Tags: 文件代码文本txttruemostreadlinebot
2条回答
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这样的库来仅在文件系统检测到文件已被修改时触发

相关问题 更多 >