Python子进程仅将stdout Popen到变量

标签 python subprocess popen

我想做一些简单的事情,但我不明白...我在 Google 上进行了很多搜索,但没有找到任何东西!

我正在这样做:

from subprocess import Popen, PIPE

p1 = Popen(["fping", '-C10', '-B1', '-p500',
'-r1', '-s', '172.29.172.106'], stdout=PIPE)
output = p1.communicate()

所以,python执行我的命令,通信等待返回代码,它工作正常。但是,我不知道为什么它显示输出...像这样:

172.29.172.106 : 13.50 18.56 13.22 13.42 13.39 187.62 13.34 13.51 13.36 26.35

       1 targets
       1 alive
       0 unreachable
       0 unknown addresses

       0 timeouts (waiting for response)
      10 ICMP Echos sent
      10 ICMP Echo Replies received
       0 other ICMP received

 13.2 ms (min round trip time)
 32.6 ms (avg round trip time)
 187 ms (max round trip time)
        4.530 sec (elapsed real time)

我只想执行一个命令,然后将输出重定向到一个变量,但我不想显示输出,因为它会淹没我的 crontab 日志文件!

所以问题是:如何使用 popen (或其他函数)执行命令并将输出重定向到变量而不显示它?

最诚挚的问候,

最佳答案

import subprocess 
p1 = Popen(["fping", '-C10', '-B1', '-p500','-r1', '-s', '172.29.172.106'],stdout=subprocess.PIPE,stderr=subprocess.PIPE)
output,error = p1.communicate()

试试这个。

关于Python子进程仅将stdout Popen到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26399624/

相关文章:

subprocess - python子进程通信挂起调用shell脚本

macos - 为什么当 system() 在相​​同命令上成功时 pclose() 返回 32512(退出代码 127)?

python - 基于来自 pandas/python 中多列的字符串对一列中的值求和

python - 如何让任务栏在 PyQt4 中显示我的进度条?

python - 如何在执行时打印 python 脚本的每一行(包括控制台)?

python - 从 python 中查找 linux 系统二进制文件的路径

python - 顺序调用多个子进程

python - 在 python 中创建进程,仅当它不存在时

python - 带连字符的数字或带连字符的数字字符串

python - 如何使用循环根据条件对 Pandas 数据框中的列进行子集化?