2024-10-04 11:25:33 发布
网友
我的python脚本(python3.4.3)通过子进程调用bash脚本。你知道吗
OutPST = subprocess.check_output(cmd,shell=True)
这是可行的,但问题是,我只能得到一半的数据。我调用的子进程,调用不同的子进程,我猜,如果“子进程”发送EOF,我的程序会认为,就是这样,并结束check\u输出。你知道吗
有人知道如何获取所有数据吗?你知道吗
您应该使用^{},除非您真的需要通过stdin对处理进行细粒度的控制(或者在进程运行时执行其他操作,而不是阻止进程完成)。它使捕获输出变得非常简单:
from subprocess import run, PIPE result = run(cmd, stdout=PIPE, stderr=PIPE) print(result.stdout) print(result.stderr)
如果您想合并stdout和stderr(比如如果您不做任何重定向,您将如何在终端中看到它),您可以为stderr使用特殊的目的地STDOUT:
stderr
STDOUT
from subprocess import STDOUT result = run(cmd, stdout=PIPE, stderr=STDOUT) print(result.stdout)
您应该使用^{} ,除非您真的需要通过stdin对处理进行细粒度的控制(或者在进程运行时执行其他操作,而不是阻止进程完成)。它使捕获输出变得非常简单:
如果您想合并stdout和stderr(比如如果您不做任何重定向,您将如何在终端中看到它),您可以为
stderr
使用特殊的目的地STDOUT
:相关问题 更多 >
编程相关推荐