根据David Beazley's talk on generators,以下代码应该复制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
如果我在一个shell中运行这个,它在做“一些事情”,它确实锁定了IPython笔记本,但它不会打印跟踪.txt. 为什么?在
follow()
生成器只返回在调用follow()
之后写入文件的行。seek(0,2)
将光标放在文件的结尾,然后尝试从该点开始读取新行。在默认情况下,
tail
通常输出最后10行。如果你想要那样的东西我试过剧本,很管用。在
您必须确保您的输入文件是一个正在增长的文件。否则它将挂起并期待新的增长行。在
下面是一个脚本,在示例.csv每5秒。在
{您将使用}来查看您的输出}。在
相关问题 更多 >
编程相关推荐