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

发布于 2021-02-02 23:19:35

正在尝试在Python中进行系统调用,并将输出存储到我可以在Python程序中操作的字符串中。

#!/usr/bin/python
import subprocess
p2 = subprocess.Popen("ntpq -p")

我已经尝试了一些方法,包括此处的一些建议:

关注者
0
被浏览
68
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    在Python 2.7或Python 3中

    Popen你可以使用subprocess.check_output()函数将命令的输出存储在字符串中,而不是直接创建对象:

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

    在Python 2.4-2.6中

    使用communicate方法。

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

    out 是你想要的。

    有关其他答案的重要说明

    请注意我如何传递命令。该"ntpq -p"示例提出了另一回事。由于Popen不调用外壳程序,因此你将使用命令和选项列表["ntpq", "-p"]



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看