当我在 Python 中执行以下操作时:
ping = subprocess.Popen("ping -n 1 %s" %ip, stdout=subprocess.PIPE)
它总是打印到屏幕上:
(subprocess.Popen object at 0x.... )
这对我来说有点烦人。你知道如何避免标准输出吗?
当我在 Python 中执行以下操作时:
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
我还更改了您用于 ping 的参数,因为-n
在我的机器实现中这是一个无效参数。