在不打印到控制台的情况下获取系统ping的输出

我想ping从Python调用并获取输出。我尝试了以下方法:

response = os.system("ping "+ "- c")

但是,这会打印到控制台,我不需要。

PING 10.10.0.100 (10.10.0.100) 56(86) bytes of data.
64 bytes from 10.10.0.100: icmp_seq=1 ttl=63 time=0.713 ms
64 bytes from 10.10.0.100: icmp_seq=2 ttl=63 time=1.15 ms

有没有一种方法可以不打印到控制台而仅获得结果?

大卫主义

要获取命令的输出,请使用subprocess.check_output如果命令失败,它将引发错误,因此将其放在一个try块中。

import subprocess

try:
    response = subprocess.check_output(
        ['ping', '-c', '3', '10.10.0.100'],
        stderr=subprocess.STDOUT,  # get all output
        universal_newlines=True  # return string not bytes
    )
except subprocess.CalledProcessError:
    response = None

若要用于ping了解地址是否正在响应,请使用其返回值,该值为0表示成功。subprocess.check_call如果返回值不为0,则将引发并出错要抑制输出,请重定向stdoutstderr使用Python 3,您可以使用subprocess.DEVNULL而不是在一个块中打开空文件。

import os
import subprocess

with open(os.devnull, 'w') as DEVNULL:
    try:
        subprocess.check_call(
            ['ping', '-c', '3', '10.10.0.100'],
            stdout=DEVNULL,  # suppress output
            stderr=DEVNULL
        )
        is_up = True
    except subprocess.CalledProcessError:
        is_up = False

通常,使用subprocess调用(如文档所述)旨在替换os.system

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PowerShell 不打印到控制台

来自分类Dev

Swift-println不打印到控制台

来自分类Dev

如何在不打印到终端的情况下从子过程读取输出?

来自分类Dev

在不打开控制台的情况下运行VNC查看器

来自分类Dev

如何在不打开Web GUI管理控制台的情况下安装openFire?

来自分类Dev

C#ILogger不打印控制台输出

来自分类Dev

在Codeception中将调试输出打印到控制台

来自分类Dev

XmlWriter打印到控制台时输出意外的编码

来自分类Dev

将输出打印到Chrome控制台

来自分类Dev

在Codeception中将调试输出打印到控制台

来自分类Dev

在不打印文档的情况下获取打印页数

来自分类Dev

如何不打印到新行 c# 控制台

来自分类Dev

为什么异常方法的 printstacktrace() 在调用时不打印到控制台?

来自分类Dev

PySpark打印到控制台

来自分类Dev

如何从XSJS打印到控制台

来自分类Dev

Clion无法打印到控制台

来自分类Dev

打印到课堂之外的控制台

来自分类Dev

Kotlin Android打印到控制台

来自分类Dev

打印到控制台Cloudfront Domain

来自分类Dev

使用&,但仍打印到控制台

来自分类Dev

Clion无法打印到控制台

来自分类Dev

PySpark打印到控制台

来自分类Dev

Hamcrest - 打印到控制台

来自分类Dev

cx_Freeze生成的EXE不打印任何控制台输出

来自分类Dev

PyCharm 2016:如何在不使用打印命令的情况下显示结果(例如控制台)?

来自分类Dev

PyCharm 2016:如何在不使用打印命令的情况下显示结果(例如控制台)?

来自分类Dev

通过Jenkins的Ant:在构建仍在运行的情况下,控制台输出中的“ BUILD SUCCESSFUL”

来自分类Dev

在没有Java Web Start的情况下,如何通过管道将Java控制台输出传输到文件?

来自分类Dev

如何在不重复所有不变值的情况下对控制台输出进行小的更改

Related 相关文章

  1. 1

    PowerShell 不打印到控制台

  2. 2

    Swift-println不打印到控制台

  3. 3

    如何在不打印到终端的情况下从子过程读取输出?

  4. 4

    在不打开控制台的情况下运行VNC查看器

  5. 5

    如何在不打开Web GUI管理控制台的情况下安装openFire?

  6. 6

    C#ILogger不打印控制台输出

  7. 7

    在Codeception中将调试输出打印到控制台

  8. 8

    XmlWriter打印到控制台时输出意外的编码

  9. 9

    将输出打印到Chrome控制台

  10. 10

    在Codeception中将调试输出打印到控制台

  11. 11

    在不打印文档的情况下获取打印页数

  12. 12

    如何不打印到新行 c# 控制台

  13. 13

    为什么异常方法的 printstacktrace() 在调用时不打印到控制台?

  14. 14

    PySpark打印到控制台

  15. 15

    如何从XSJS打印到控制台

  16. 16

    Clion无法打印到控制台

  17. 17

    打印到课堂之外的控制台

  18. 18

    Kotlin Android打印到控制台

  19. 19

    打印到控制台Cloudfront Domain

  20. 20

    使用&,但仍打印到控制台

  21. 21

    Clion无法打印到控制台

  22. 22

    PySpark打印到控制台

  23. 23

    Hamcrest - 打印到控制台

  24. 24

    cx_Freeze生成的EXE不打印任何控制台输出

  25. 25

    PyCharm 2016:如何在不使用打印命令的情况下显示结果(例如控制台)?

  26. 26

    PyCharm 2016:如何在不使用打印命令的情况下显示结果(例如控制台)?

  27. 27

    通过Jenkins的Ant:在构建仍在运行的情况下,控制台输出中的“ BUILD SUCCESSFUL”

  28. 28

    在没有Java Web Start的情况下,如何通过管道将Java控制台输出传输到文件?

  29. 29

    如何在不重复所有不变值的情况下对控制台输出进行小的更改

热门标签

归档