我使用简单的函数w1(str)来使程序停止并等待一个键。以下代码有效。
file:test.py
#!/bin/env python
def w1(str):
print (str)
wait = raw_input()
return
if __name__ == '__main__':
print('started..')
w1('press a key')
print('exiting..')
如何运行(ok):
ckim@stph45:~/test] test.py
started..
press a key
exiting..
但是当我运行test.py | tee log
时,它并没有显示任何内容,如果我按下一个键,它就会完成不打印信息并等待密钥。实际上,问题是当通过tee命令运行并且它正在等待我的密钥时,屏幕上不显示print(str)
。即使我使用print(str)
运行它,如何显示此|tee
?
python -u
可以解决问题。但最初我的python脚本在脚本的开头有#!/bin/env python
所以我运行它test.py | tee log
。我在网上搜索,发现我能做到:
ckim@stph45:~/test] setenv PYTHONUNBUFFERD 1
ckim@stph45:~/test] $test.py | tee log
答案 0 :(得分:4)
使用-u
取消缓冲,
python -u test.py | tee log