python - 如何消除Python中subprocess.Popen的标准输出?

标签 python python-2.7 ping

当我用 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/

相关文章:

python - subprocess.Popen - 再次重定向标准输入

amazon-web-services - 无法连接到 AWS E2 实例(但安全组允许入站)

python - 如何从 unicode 字节表示中检索我的 unicode

python - BeautifulSoup 无法使用正确的编码读取 javascript 中的 html

cocoa - 如何在 Objective-C/Cocoa 中执行 shell 命令 "ping"并将结果转换为字符串?

c# - Ping 和通用结构 C# - Visual Studio 2010

python - 确保在 ProcessPoolExecutor.submit 返回之前完成酸洗

python - 如何在python中保存文件内容?

python - 从 Amazon S3、AWS CLI 或 Boto3 下载?

python - 扭曲-工厂对象线程安全吗?