【发布时间】:2015-02-18 19:43:20
【问题描述】:
问题:有没有办法使用 Python 访问正在运行的进程的标准输出?此进程没有由 Python 启动。
上下文:有一个名为 mayabatch 的程序,可以从 3D Maya 场景文件中渲染出图像。如果我从命令行运行程序,我会看到来自 mayabatch 的进度消息。有时,艺术家会关闭这些窗口,让进度无法追踪,直到程序完成。这导致我沿着这条路径尝试在它由外部进程产生后读取它的标准输出。
背景:
- 操作系统:Windows 7 64 位
到目前为止我的研究:我只使用subprocess 模块找到了关于如何在子流程中执行此操作的问题和答案。我还简要查看了psutil,但我找不到任何方法来读取进程的标准输出。
任何帮助将不胜感激。谢谢。
【问题讨论】:
-
你可以使用一个带有已知端口的套接字,如果连接了,则通过管道输出,不是吗?
-
使用本机操作系统服务——这将是一个挑战,并且完全取决于您使用的操作系统。但听起来问题比这更简单。听起来
mayabatch有一种机制可以告诉您已经运行的程序的状态......听起来它是一个命令行实用程序。为什么只编写脚本执行并解析它的输出? -
在 Linux 上,您可以(在某种程度上)使用
strace执行此操作。也许有一个 Windows 等价物? -
感谢您的所有意见。它们非常有用。
标签: python process operating-system maya