Pyd*_*man 4 python yield generator tail seek
根据David Beazley关于生成器的讨论,以下代码应该复制UNIX tail -f命令:
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
Run Code Online (Sandbox Code Playgroud)
如果我在shell中运行它,它正在做"某事",它确实锁定了IPython笔记本,但它没有打印出follow.txt的内容.为什么这样?
我尝试了脚本,它的工作原理.
您必须确保输入文件是一个不断增长的文件.如果没有,它会悬挂并期待新的生长线.
这是一个脚本,每隔5秒就将带有时间戳的行写入sample.csv.
import os
import time
import datetime
while True:
os.system("echo " + "sample line with timestamp:{0}".format(datetime.datetime.now()) + " >> " + " sample.csv")
time.sleep(5)
Run Code Online (Sandbox Code Playgroud)
使用您的tail -f脚本阅读它,您将看到输出.
| 归档时间: |
|
| 查看次数: |
734 次 |
| 最近记录: |