python - 如何在循环中检查值?
问题描述
我有一个代码可以在 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))
解决方案
哟可以在循环之前定义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))