2015-08-19 71 views
1

我試圖運行使用Python UNIX命令,我已經得到了代碼返回我想要的價值,但似乎並沒有讓我上,我指定的分隔符分割值拆分check_output返回值

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 
[''] 

回答

2

它看起來像fping被寫入標準錯誤。爲了捕捉使用check_output兩個標準錯誤和標準輸出輸出,使用

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']