为什么要使用内容
调用文件a.py
import os
print('Hi')
os.system('cat a.py')
产生以下输出,如何让它们以正确的顺序打印?
$ python a.py
import os
print('Hi')
os.system('cat a.py')
Hi
您会看到cat
命令在print
之前打印到stdout。在Windows 10上的GitBash中运行Python 3.6时会发生。在Ubuntu 17.10上使用Python 3.6会发生不。
注意:我知道我可以轻松地使用类似file.readlines()
的内容打印文件内容。这只是一个简单的例子。但是,当运行更复杂的东西时,了解为什么会发生这种情况以及如何解决这个问题变得很重要
答案 0 :(得分:9)
输出被缓冲。你必须刷新这个缓冲区:
import os
import sys
print('Hi')
sys.stdout.flush()
os.system('cat a.py')
答案 1 :(得分:0)
这是一种更干净的方式。
from subprocess import check_output
print check_output(['cat', 'a.py'])