我需要在 Python 中运行一个 shell 命令,并简单地将其输出打印回屏幕,而无需实时更改写入 stdout 和 stderr 的内容。
我可以看到类似的问题 have been asked before 但我找不到简单的答案。
我尝试过类似的事情
import subprocess, sys
command = "some long shell command".split(" ")
proc = subprocess.Popen(
command,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
)
while True:
out = proc.stdout.read(1)
if out:
sys.stdout.write(str(out))
sys.stdout.flush()
err = proc.stderr.read(1)
if err:
sys.stderr.write(str(err))
sys.stderr.flush()
if proc.poll():
break
这行不通,但它可能有助于理解我想要做什么。