Python 子进程在运行时读取标准输出

本文介绍了两种在Python中实时读取子进程标准输出的方法:使用check_call和轮询进程。通过Subprocess模块,可以实现对外部程序的实时输出显示,满足实时性需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


本文的主要目的是演示如何读取在 Python 中执行的子进程的标准输出。


Python 子进程在运行时读取标准输出

与许多其他内置模块一样,Subprocess 也是一个内置模块,预装了“正常”Python 安装。

它主要用于在新进程中运行任务、进程和程序,执行一组特定任务并返回结果时。

它被广泛使用的众多原因之一是它允许作为一个单独的进程直接从程序中执行外部程序和可执行文件。

使用 Subprocess 库执行程序时,可能需要实时显示该外部程序的输出。 出于多种原因,这可能是一项要求,例如当程序可能是实时的并且依赖于短时间后的计算时。

考虑以下程序:

import subprocess

def execute(command):
    process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    output = process.communicate()[0]
    exitCode = process.returncode

    if (exitCode == 0):
        return output
    else:
        raise Exception(command, exitCode, output)

if __name__ == '__main__':
    print(execute(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迹忆客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值