运行管道和tee命令时未显示python print语句

2024-09-30 16:23:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用简单的w1(str)函数有时使程序停止并等待一个键。下面的代码有效。在

文件:测试.py在

#!/bin/env python

def w1(str):
    print (str)
    wait = raw_input()
    return

if __name__ == '__main__':
    print('started..')
    w1('press a key')
    print('exiting..')

运行方式(好):

^{pr2}$

但是当我运行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

Tags: 函数代码pytest程序env脚本log