首页 > 解决方案 > 做一些操作直到 Subprocess Check 输出完成

问题描述

是否有可能在 subprocess.checkoutput 完成时执行一些任务,例如在下面的片段中我 ping google 10 秒,在这 10 秒内直到 print 语句被触发而不是保持空闲有没有办法打印一些随机消息比如 print("ping 还在运行")

import subprocess

ping = subprocess.check_output("ping -n 10 www.google.com.", shell=True, 
stderr=subprocess.STDOUT, universal_newlines=True)

while ping:  # need assistance here
   print("ping is still running")

print(ping)

标签: pythonpython-3.x

解决方案


使用subprocess.run()而不是subprocess.check_output()如下:

ping = subprocess.run("ping -n 10 www.google.com.", shell=True, 
stderr=subprocess.STDOUT, universal_newlines=True)

而且您需要应用更多时间而不是 10 秒,例如 100000000。


推荐阅读