python - 从子流程的子流程捕获输出

标签 python subprocess

所以我在我的脚本中使用以下内容来捕获我的子进程的 stdout 和 stderr 输出:

output = subprocess.check_output(
    cmd,
    stderr=subprocess.STDOUT
)

这很顺利,但是,我的子流程有一个它自己调用的子流程。它本身调用的子进程具有我想要捕获的输出。但是,在我当前的设置下,我只捕获我创建的子进程的输出,而没有接收到它的子进程的任何输出。

有什么方法可以捕获由我的代码启动的子进程产生的任何子子进程的输出?

最佳答案

进程无法访问子子进程的输出,因此中间子进程必须充当代理(它在其输出中写入子子进程的输出)或者子子进程必须将其输出发送到某个地方(例如一个临时文件)将被进程读取

关于python - 从子流程的子流程捕获输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49909583/

相关文章:

python - 更多 < 子进程调用 Python 中的运算符

python-3.x - 往返 2 个 Python 子进程的循环管道

python - Django - 模型 + 字典列表

python - 如何展开基于键值 "pairs"的 python 列表字典?

python - 加载tensorflow模型而不导入tensorflow

python - 写入另一个Python程序的原始输入而不弹出新的黑屏

python - 将数据通过管道传输到 python 调试器并交互式编写 python 程序

python - 权限错误 : [Errno 13] Permission denied: 'file.mp3'

Python 子进程 readlines() 挂起

python - 检测进程中止