为什么用内容调用文件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
之前打印到标准输出。在 Windows 10 上的 GitBash 中运行 Python 3.6 时发生。不会在 Ubuntu 17.10 上的 Python 3.6 中发生。
注意: 我知道我可以轻松地使用 file.readlines()
之类的方法打印文件的内容。这只是一个简单的例子。但是,当运行更复杂的事情时,了解为什么会发生这种情况以及如何解决它会变得很重要
最佳答案
输出被缓冲。您必须刷新此缓冲区:
import os
import sys
print('Hi')
sys.stdout.flush()
os.system('cat a.py')
关于Python os.system : Order of commands,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47781324/