我的问题是,我有一个函数调用它,function1
它无限期地运行。该函数本身每秒都会回显hello
。使用命令:
function1 >> temp.txt
如果我每秒查看文件,temp.txt
我都会看到一个带有 的新行hello
。然而,实际情况是,该函数直到运行完毕才会写入文件。因此,如果我要终止该函数,则不会写入任何内容。有人知道在这种情况下我可以做什么来基本上动态更新 吗temp.txt
?
我有一个按以下方式设置的python脚本:
while [1>0]:
print "hello"
time.sleep(1)
因此它将始终运行。现在我在 bash 脚本中调用它
python pythonscript.py >> temp.txt
如果kill
该过程没有记录任何数据。
答案1
Bash 不会缓冲,但是如果输出不到达终端,python 将会缓冲(因为这样更高效),因此您需要在每一行之后刷新标准输出。
#!/usr/bin/env python
import sys
import time
while True:
print "hello"
sys.stdout.flush()
time.sleep(1)