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

时间:2015-01-20 23:49:09

标签: python file

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

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

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

但这完全不起作用......我是Python新手,有人可以帮助我吗?

2 个答案:

答案 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这样的库只在文件系统检测到文件被修改时触发