我创建了一个非常简单的 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。