从 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中文网其他相关文章!