【学习笔记】python监听执行中的另一个py程序的输出

需求🐱‍🚀

python使用过程中,有的时候会需要通过代码调用另一个.py程序。

但是我们以及主进程并不知道另一个程序,运行的情况。

能不能通过一些手段,来提示主进程呢

解决办法🎡

subprocess.Popen允许你启动一个新进程,并可以连接到它的输出/错误管道,从而可以实时地读取print数据。

示例程序

    process = subprocess.Popen(
        ['你的python解释器路径', "你的python程序",
         obj(这个改成你要传递的参数)], stdout=subprocess.PIPE,
        text=True)
    #text=True,让输出的内容是str形式,而不是字节形式
    while True:
        # 读取一行输出,注意这里是非阻塞的,如果没有输出会立即返回空字符串
        line = process.stdout.readline().strip()
        if not line and process.poll() is None:
            # 如果读取到空字符串且进程已结束,则退出循环
            break
        if line:
            # 如果有输出,则打印它
            print(f"[stdout] :{line}")
    process.wait()

当设置 stdout=subprocess.PIPE时, subprocess.Popen()将子进程的标准输出(stdout)捕获到一个管道(pipe)中,这样你就可以在Python程序中访问这个输出了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值