【发布时间】:2011-03-16 14:01:46
【问题描述】:
我创建了一个非常简单的python脚本:
def read_then_follow(file):
for line in file:
yield line
while True:
line = file.readline()
if not line:
time.sleep(1.0)
continue
yield line
for line in read_then_follow("some_file.txt"): print line
文件“some_file.txt”包含几行文本,当我运行脚本时将写入屏幕。如果我随后使用echo "line" >> some_file.txt 在文件中添加一行,则该行将在 1 秒内打印到屏幕上。但是:如果我在 vim 中打开文件,在底部添加一行并保存,脚本将停止运行。它既不会将 vim 中写入的新行写入屏幕,也不会响应进一步的echo ... 命令。
供您参考,我目前在 Ubuntu 10.10 上使用 python 2.6.6。
【问题讨论】: