当我用 Python 做一些事情时:
ping = subprocess.Popen("ping -n 1 %s" %ip, stdout=subprocess.PIPE)
它总是打印到屏幕上:
(subprocess.Popen object at 0x.... )
这对我来说有点烦人。你知道如何避免 std 输出吗?
最佳答案
看起来您正在尝试通过在示例中打印 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
在我的机器实现上是无效参数。
关于python - 如何消除Python中subprocess.Popen的标准输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12134544/