我正在使用subprocess.check_pythons subprocess模块的输出来执行ping命令。我是这样做的:
output = subprocess.check_output(["ping","-c 2 -W 2","1.1.1.1")
它正在引发一个CalledProcessError,并表示输出是函数的参数之一。有谁能帮我读一下那个输出吗。我想把输出读入一个字符串并解析它。例如,如果ping返回
100% packet loss
我需要抓住它。如果还有其他更好的方法…请建议。谢谢。
Tags:
在参数列表中,每个条目必须独立。使用
应该能解决你的问题。
根据Python os module documentationos,popen从Python 2.6开始就被弃用了。
我认为现代Python的解决方案是使用来自subprocess模块的check_output()。
从subprocess Python documentation:
如果在Python2.7(或更高版本)中运行以下代码:
您应该看到如下输出:
输出字符串可以被解析以满足操作需要。
如果需要returncode或其他属性,则它们位于CalledProccessError中,这可以通过使用pdb单步执行来看到
如果要将stdout和stderr取回(包括在发生stdout和stderr时从调用的进程中提取它),请使用以下命令:
这与Python2和3兼容。
如果命令是字符串而不是数组,请在其前面加上:
相关问题 更多 >
编程相关推荐