Python os.system : Order of commands

标签 python python-3.x git-bash python-os

为什么用内容调用文件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/

相关文章:

python - Pandas :value_counts 函数的反函数

python - 当tkinter中的输入框超过窗口高度时,如何添加滚动条?

linux - 无法通过SSH通过Gitbash从Windows系统使用PPK身份验证连接到linux服务器

python - 如何保存通过camera.capture_continuous(格式rgb)读取的图像并将其保存到文件中

python - openpyxl - 使用列表填充列

python - Scrapy startproject 不适用于 git-bash

android - 如何解决 "fatal: ambiguous argument ' HEAD~ 1': unknown revision or path not in the working tree"?

python - 在打开 MessageBox 之前如何关闭 ProgressDialog?

python - 在 Jupyter Notebook 中调用 JS 文件并共享数据

python - 1300, "Invalid utf8mb4 character string: '\xE2\x96\x88\xE2\x96\x88