【发布时间】:2018-05-26 15:39:20
【问题描述】:
为什么用内容调用文件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() 之类的东西打印文件的内容。这只是一个简单的例子。然而,当运行更复杂的事情时,了解为什么会发生这种情况以及如何解决它会变得很重要
【问题讨论】:
-
你为什么不使用
subprocess.Popen?不应使用os.system。subprocess.Popen的行为保证在所有操作系统中都是相同的 -
@user1767754:子进程的行为并没有什么不同。
标签: python python-3.x git-bash python-os