Python脚本在打印之前打印os.system的输出
我有一个python脚本test.py:
print "first"import os
os.system("echo second")
在linux命令行上执行
python test.py
返回:
firstsecond
然后执行
python test.py > test.out; cat test.out
哪个返回
secondfirst
如何重定向输出使os.system调用在print语句之前打印?
回答:
当您输出到管道时,Python缓冲写入的sys.stdout
输出,并在刷新,溢出,关闭后(程序退出时)输出。虽然它将缓冲打印调用,但系统调用输出将直接输出到stdout中,并且其输出将不会被缓冲。这就是为什么您会看到这样的优先级。为了避免这种情况,请使用python
-u:
python -u test.py > test.out; cat test.out
编辑 :有关何时将刷新缓冲区的说明。
以上是 Python脚本在打印之前打印os.system的输出 的全部内容, 来源链接: utcz.com/qa/432317.html