Python os.system:命令顺序
Python os.system: Order of commands
为什么用内容
调用文件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
打印到标准输出。 运行 Python 3.6 在 Windows 10 上的 GitBash 中发生时发生。 不 在 Ubuntu 17.10 上与 Python 3.6 发生吗.
注意: 我知道我可以轻松地使用 file.readlines()
之类的东西打印文件的内容。这只是一个简单的例子。但是,当 运行 事情变得更复杂时,理解 为什么 会发生这种情况以及如何解决它变得很重要
输出已缓冲。您必须刷新此缓冲区:
import os
import sys
print('Hi')
sys.stdout.flush()
os.system('cat a.py')
这是一种更简洁的方法。
from subprocess import check_output
print check_output(['cat', 'a.py'])
为什么用内容
调用文件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
打印到标准输出。 运行 Python 3.6 在 Windows 10 上的 GitBash 中发生时发生。 不 在 Ubuntu 17.10 上与 Python 3.6 发生吗.
注意: 我知道我可以轻松地使用 file.readlines()
之类的东西打印文件的内容。这只是一个简单的例子。但是,当 运行 事情变得更复杂时,理解 为什么 会发生这种情况以及如何解决它变得很重要
输出已缓冲。您必须刷新此缓冲区:
import os
import sys
print('Hi')
sys.stdout.flush()
os.system('cat a.py')
这是一种更简洁的方法。
from subprocess import check_output
print check_output(['cat', 'a.py'])