2

私がPythonで何かをしたとき:

ping = subprocess.Popen("ping -n 1 %s" %ip, stdout=subprocess.PIPE)

それは常に画面に印刷することです:

(subprocess.Popen object at 0x.... )

それは私にとって少し迷惑です。そのstd出力を回避する方法を知っていますか?

4

1 に答える 1

2

ping例の変数を出力して、プロセスからstdoutを取得しようとしているようです。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

pingに使用した引数も変更しました。これ-nは、私のマシンの実装では無効な引数であるためです。

于 2012-08-27T00:15:35.883 に答える