首页 >后端开发 >Python教程 >如何在 Python 中捕获 subprocess.Popen 调用的输出并将其存储为字符串?

如何在 Python 中捕获 subprocess.Popen 调用的输出并将其存储为字符串?

Patricia Arquette
Patricia Arquette原创
2024-12-04 19:07:14259浏览

How Can I Capture and Store the Output of a subprocess.Popen Call as a String in Python?

在字符串中存储 subprocess.Popen 调用的输出

在 Python 编程中,使用 subprocess 模块允许您执行系统调用并捕获他们的输出。本文提供了将 subprocess.Popen 调用的输出存储在字符串变量中的解决方案。

Python 2.7 或 Python 3 的解决方案

Python 提供了 subprocess.check_output () 函数,专门用于将命令的输出捕获到字符串中。只需按如下方式使用即可:

from subprocess import check_output
out = check_output(["ntpq", "-p"])

Python 2.4-2.6 的解决方案

对于 Python 2.4 至 2.6 版本,您可以使用 Popen 的通信方法:

import subprocess
p = subprocess.Popen(["ntpq", "-p"], stdout=subprocess.PIPE)
out, err = p.communicate()

上面代码中的 out 变量包含了想要的输出。

关于命令输入的注意事项

使用 Popen 时,将命令作为字符串列表传递至关重要,如提供的示例所示。这是因为 Popen 不会调用 shell。

以上是如何在 Python 中捕获 subprocess.Popen 调用的输出并将其存储为字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

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