Python-将subprocess.Popen调用的输出存储在字符串中
正在尝试在Python中进行系统调用,并将输出存储到我可以在Python程序中操作的字符串中。
#!/usr/bin/pythonimport subprocess
p2 = subprocess.Popen("ntpq -p")
我已经尝试了一些方法,包括此处的一些建议:
回答:
在Python 2.7或Python 3中
Popen你可以使用subprocess.check_output()
函数将命令的输出存储在字符串中,而不是直接创建对象:
from subprocess import check_outputout = check_output(["ntpq", "-p"])
在Python 2.4-2.6中
使用communicate
方法。
import subprocessp = subprocess.Popen(["ntpq", "-p"], stdout=subprocess.PIPE)
out, err = p.communicate()
out
是你想要的。
有关其他答案的重要说明
请注意我如何传递命令。该"ntpq -p"
示例提出了另一回事。由于Popen不调用外壳程序,因此你将使用命令和选项列表["ntpq", "-p"]
。
以上是 Python-将subprocess.Popen调用的输出存储在字符串中 的全部内容, 来源链接: utcz.com/qa/429992.html