據David Beazley's talk on generators,下面的代碼應該複製的UNIX tail -f
命令:複製「尾-f」與Python
import time
def follow(thefile):
thefile.seek(0,2)
while True:
line = thefile.readline()
if not line:
time.sleep(0.1)
continue
yield line
f = open('followed.txt')
lines = follow(f)
for i in lines:
print i
如果我在一個shell中運行這個,它在做什麼「東西」,而事實上它鎖定註冊IPython筆記本,但不打印followed.txt的內容。爲什麼這樣?
**澄清**:在代碼運行時,我用Vim打開followed.txt,添加一行任意文本並保存。仍然沒有打印。 – Pyderman
您的方法適用於我。 –
你如何追加'followed.txt'?如果使用文本編輯器將文本添加到'followed.txt',上面的代碼可能不起作用,因爲文本編輯器可能不會追加到原始文件 - 它可能正在創建一個新文件,然後重命名'followed.txt '對它... – unutbu