首页 >后端开发 >Python教程 >如何在 Python 中从 `subprocess.call()` 检索进程输出?

如何在 Python 中从 `subprocess.call()` 检索进程输出?

Barbara Streisand
Barbara Streisand原创
2024-11-30 04:26:17122浏览

How Can I Retrieve Process Output from `subprocess.call()` in Python?

从 subprocess.call() 检索进程输出

在 2.7 之前的 Python 版本中,从使用 subprocess 调用的进程获取输出。 call() 可能具有挑战性。由于 StringIO 对象中缺少 'fileno' 属性,将 StringIO.StringIO 对象传递给 stdout 参数会触发错误。

解决方案

对于 Python 版本 2.7如上所述, subprocess.check_output 函数提供了一个简单的解决方案。它将子进程的执行与捕获并以字符串形式返回其标准输出结合起来。

例如(在 Linux 上测试):

import subprocess

output = subprocess.check_output(['ping', '-c', '1', '8.8.8.8'])

print(output)

请注意,ping 命令使用Linux 表示法(-c 表示计数)。对于 Windows,将其更改为 -n。

有关更多详细信息,请参阅此[其他帖子](https://stackoverflow.com/a/5647266/6214952) 中更全面的答案。

以上是如何在 Python 中从 `subprocess.call()` 检索进程输出?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn