2

当我在 Python 中执行以下操作时:

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

它总是打印到屏幕上:

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

这对我来说有点烦人。你知道如何避免标准输出吗?

4

1 回答 1

2

看起来您正试图通过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

我还更改了您用于 ping 的参数,因为-n在我的机器实现中这是一个无效参数。

于 2012-08-27T00:15:35.883 回答