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

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

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

要获取命令的输出,请使用

subprocess.check_output
。如果命令失败,它将引发错误,因此将其放在一个
try
块中。

import subprocesstry:    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,则将引发并出错。要抑制输出,请重定向
stdout
stderr
。使用Python
3,您可以使用
subprocess.DEVNULL
而不是在一个块中打开空文件。

import osimport subprocesswith 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



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5648672.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存