要实时获取子进程的stdout,可以使用以下方法:
stdout=subprocess.PIPE
来捕获子进程的标准输出。import subprocess
# 创建子进程
process = subprocess.Popen(['command'], stdout=subprocess.PIPE)
# 实时获取子进程的stdout
while True:
output = process.stdout.readline()
if output == b'' and process.poll() is not None:
break
if output:
print(output.strip())
# 等待子进程结束
process.wait()
process.stdout.readline()
会实时读取子进程的输出,如果输出为空且子进程已经结束,则退出循环。注意,readline()
返回的是字节类型,需要使用strip()
方法去除换行符。['ls', '-l']
来执行ls -l
命令。stderr=subprocess.PIPE
,并使用process.stderr.readline()
来读取。请注意,以上答案仅供参考,具体实现方式可能因编程语言、操作系统等因素而有所差异。
云+社区技术沙龙[第10期]
极客说第一期
Techo Youth
第四期Techo TVP开发者峰会
第四期Techo TVP开发者峰会
云+社区沙龙online第5期[架构演进]
腾讯云数智驱动中小企业转型升级系列活动
领取专属 10元无门槛券
手把手带您无忧上云