2
當我做在Python中的東西爲:如何消除Python中的subprocess.Popen的標準輸出?
ping = subprocess.Popen("ping -n 1 %s" %ip, stdout=subprocess.PIPE)
它總是打印出屏幕:
(subprocess.Popen object at 0x....)
這對我來說有點討厭。你知道如何避免標準輸出嗎?
當我做在Python中的東西爲:如何消除Python中的subprocess.Popen的標準輸出?
ping = subprocess.Popen("ping -n 1 %s" %ip, stdout=subprocess.PIPE)
它總是打印出屏幕:
(subprocess.Popen object at 0x....)
這對我來說有點討厭。你知道如何避免標準輸出嗎?
它看起來像你試圖通過在你的例子中打印ping
變量從過程中獲得標準輸出。這是subprocess.Popen
對象的錯誤用法。爲了正確使用subprocess.Popen
這是你寫的:
ping_process = subprocess.Popen(['ping', '-c', '1', ip], stdout=subprocess.PIPE)
# This will block until ping exits
stdout = ping_process.stdout.read()
print stdout
我也改變時使用的平的參數,因爲-n
是在我的機器實現了無效的參數。
'stdout = ping_process.communicate()[0]' – jfs
你如何運行它?它不應該產生這樣的輸出 – jfs
運行'ping = subprocess.Popen(['ping','127.0.0.1'],stdout = subprocess.PIPE)'不產生輸出。 – Blender
請參閱這裏[如何使用子進程ping多個主機](http://stackoverflow.com/a/12102040/4279) – jfs