需要帮助读取子进程的输出吗

2024-10-04 11:25:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我的python脚本(python3.4.3)通过子进程调用bash脚本。你知道吗

OutPST = subprocess.check_output(cmd,shell=True)

这是可行的,但问题是,我只能得到一半的数据。我调用的子进程,调用不同的子进程,我猜,如果“子进程”发送EOF,我的程序会认为,就是这样,并结束check\u输出。你知道吗

有人知道如何获取所有数据吗?你知道吗


Tags: 数据程序脚本cmdbashtrueoutput进程
1条回答
网友
1楼 · 发布于 2024-10-04 11:25:33

您应该使用^{},除非您真的需要通过stdin对处理进行细粒度的控制(或者在进程运行时执行其他操作,而不是阻止进程完成)。它使捕获输出变得非常简单:

from subprocess import run, PIPE

result = run(cmd, stdout=PIPE, stderr=PIPE)
print(result.stdout)
print(result.stderr)

如果您想合并stdout和stderr(比如如果您不做任何重定向,您将如何在终端中看到它),您可以为stderr使用特殊的目的地STDOUT

from subprocess import STDOUT

result = run(cmd, stdout=PIPE, stderr=STDOUT)
print(result.stdout)

相关问题 更多 >