首页 > 解决方案 > 如何在循环中检查值?

问题描述

我有一个代码可以在 while 循环中打印文件的最后一行(实时更新)。我想要做的是检查“数据”与上一个循环中的不同,这样它就不会打印重复的文本。我如何做到这一点?

我想做这样的事情:

starttime = time.time()

while True:
    with open('test.txt', 'r') as f:
        lines = f.read().splitlines()
        last_line = lines[-1]
        if data is not last_line:
            data=last_line
    print(data)
    time.sleep(1 - ((time.time() - starttime) % 1))

标签: python

解决方案


哟可以在循环之前定义data(重命名last_data),然后使用print里面的if语句。另外我建议使用 for 循环读取文件,它避免一次读取内存中的所有文件

starttime = time.time()
last_data = None
while True:
    with open('test.txt', 'r') as f:
        for line in f:
            last_line = line.rstrip()
        if last_data != last_line:
            last_data = last_line
            print(last_data)
    time.sleep(1 - ((time.time() - starttime) % 1))

推荐阅读