作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个项目来帮助我学习Python。我意识到我可能正在重新发明轮子,因为那里可能有一个 ping 模块。如果是这样请不要建议这个,因为这个项目是为了帮助我学习 python。
我不会详细介绍我的整个项目。目前,我只是尝试将 ping 命令的输出分配给一个变量。大多数情况下,我只对 ping 输出的特定部分感兴趣。本地址存在时,代码可以正常工作。所以我的问题是如何解决这个问题,以便在网络地址不存在并且 ping 返回负结果时它可以工作?
#! /usr/bin/perl
import subprocess
p1 = subprocess.check_output("ping -q -o -t 4 192.168.1.113", shell=True)
ping1 = p1[131:137]
print ping1
结果如下
>>> ================================ RESTART ================================
>>>
0.0%
>>>
当 IP 地址不存在时,我得到以下信息:
>>> ================================ RESTART ================================
>>>
Traceback (most recent call last):
File "/Users/dmartin/scripts/python/netscan/netscanv2.py", line 6, in <module>
p1 = subprocess.check_output("ping -q -o -t 4 192.168.1.114", shell=True)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 575, in check_output
raise CalledProcessError(retcode, cmd, output=output)
CalledProcessError: Command 'ping -q -o -t 4 192.168.1.114' returned non-zero exit status 2
最佳答案
您可能应该捕获该异常并以这种方式处理该情况。
import subprocess
try:
p1 = subprocess.check_output("ping -q -o -t 4 192.168.1.113", shell=True)
ping1 = p1[131:137]
print ping1
except CalledProcessError, e:
if "status 2" in str(e):
print "IP address does not exist."
else:
print "Process error encountered: " + str(e)
关于python - 如何将系统命令分配给Python中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25311643/
我是一名优秀的程序员,十分优秀!