我正在尝试使用python运行一个unix命令,我有代码返回我想要的值,但似乎没有让我在我指定的分隔符上拆分值
import subprocess
from subprocess import check_output
def RunFPing(command):
output = check_output(command.split(" "))
output = str(output).split(" : ")
return output
print RunFPing("fping -C 1 -q 192.168.1.25")
我得到的输出是:
10.1.30.10 : 29.00
['']
答案 0 :(得分:2)
看起来fping
正在写给stderr。要使用check_output
捕获stderr和stdout输出,请使用
output = check_output(command.split(" "),stderr=subprocess.STDOUT)
请参阅https://docs.python.org/2/library/subprocess.html#subprocess.check_output
在您的代码中
#!/usr/bin/env python
import subprocess
from subprocess import check_output
def RunFPing(command):
output = check_output(command.split(" "),stderr=subprocess.STDOUT))
output = str(output).split(" : ")
return output
if __name__ == "__main__":
print RunFPing("fping -C 1 -q 192.168.1.25")
将导致
192.168.1.25 : 0.04
['192.168.1.25', '0.04\n']