当前位置: 首页 > 面试题库 >

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

锺威
2023-03-14
问题内容

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

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

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


问题答案:

在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"]



 类似资料:
  • 在我看来,到目前为止,JFrame中发生的一切都留在JFrame中。(可能应该进入JavaFX而不是Swing) 假设您有一个 JFrame 类 (gui_frame),它利用 JButtons 和一个名为 HandlerClass 的嵌套类来实现 ActionListener,如下所示: 然后你有主代码,它调用这个gui_frame类。 本质上,我试图在运行时将被单击后的按钮名称存储在JFram

  • 我想为Spring Cache执行以下操作。 > 检查传递的字符串是否存在于缓存中。如果存在,则返回true,如果不存在,则添加到缓存;checkInCache(字符串str) 从缓存逐出字符串(String str) 尝试如下 @组件公共类FlightCache{ 并在配置类上添加了@EnableCaching注释。 错误:

  • 根据这个问题的答案:停止Excel自动将某些文本值转换为日期我正在尝试使用python的CSV模块创建一个CSV文件,某些字段的格式为 但是,我无法让CSV编写器生成这样的输出。如果我使用默认的 csvwriter(没有特殊参数)并预先格式化我的数据,它会尝试引用我的所有引号,并且我得到的输出如下所示: 如果我将csv编写器的引用级别设置为QUOTE_NONE,那么我得到一个“错误:需要转义,但没

  • 问题内容: 我需要使用启动多个长时间运行的进程,并希望将和从每个自动传送到单独的日志文件。每个进程将同时运行几分钟,并且我希望在进程运行时将 每个进程* 写入两个日志文件(和)。 * 我需要不断地调用,以便更新每个日志文件上的每个进程在循环,或者是有一些方法来调用原有的命令,以便和自动传输到打开的文件句柄? 问题答案: 根据文档, stdin,stdout和stderr分别指定执行程序的标准输入,

  • 我有一个名为samparr的数组[字符串],其中包含一些值,我希望它存储为输出文件。 就像, 但RDD不是数组吗[字符串]

  • 问题内容: 如果我执行以下操作: 我得到: 显然,cStringIO.StringIO对象没有足够接近库中的子程序来适应subprocess.Popen。我该如何解决? 问题答案: 说明文件: 请注意,如果要将数据发送到进程的stdin,则需要使用创建Popen对象。同样,要在结果元组中获得除None以外的任何内容,你还需要提供和/或。 替换 警告使用而不是,或来避免死锁,因为任何其他OS管道缓冲