我正在尝试使用Python中的生成器实现tail
命令。这是代码。
import time
def tail(f):
f.seek(0, 2)
while True:
line = f.readline()
if not line:
time.sleep(1)
continue
if not line.isspace():
yield line
for l in tail(open('access.log')):
print(l)
只要我不更改for循环中的print()
函数,此代码就可以正常工作。如果将for循环中的print函数更改为:
for l in tail(open('access.log')):
print(l, end="")
突然间它停止给我更新。问题是什么 ?