python - 做一些操作直到 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)
解决方案
使用subprocess.run()而不是subprocess.check_output()如下:
ping = subprocess.run("ping -n 10 www.google.com.", shell=True,
stderr=subprocess.STDOUT, universal_newlines=True)
而且您需要应用更多时间而不是 10 秒,例如 100000000。
推荐阅读
- spring-boot - 尝试使用 Spring Webflux WebClient 时遇到“java.library.path 中没有 netty_resolver_dns_native_macos_x86_64”
- typescript - 如何通过函数公开枚举的属性
- php - 如何从相似行的表中选择最旧的行?
- jestjs - 如何测试接受 JSX.Element 的函数?
- python - Jupyter Notebook (Python) 需要 tensorflow 1.4
- python - 如何在 for 循环中使用 insert() 而不使其成为无限循环?
- python - 制作执行另一个python代码的python代码的单个exe文件
- passport-saml - Saml 策略验证回调没有被调用
- php - 在 laravel 迁移中更改主 ID
- r - 如何使用 R 中的 groupby 语句计算唯一行