按照时间顺序同时读取输出/错误流的执行进程
创始人
2024-11-09 04:30:04
0

在Python中,可以使用subprocess模块来启动一个子进程并同时读取其输出和错误流。下面是一个示例代码:

import subprocess

def run_command(command):
    # 启动子进程
    process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
    
    # 读取输出和错误流
    while True:
        # 读取输出流
        output = process.stdout.readline().decode('utf-8')
        if output == '' and process.poll() is not None:
            break
        if output:
            print(output.strip())
        
        # 读取错误流
        error = process.stderr.readline().decode('utf-8')
        if error == '' and process.poll() is not None:
            break
        if error:
            print(error.strip())
    
    # 等待子进程结束
    process.wait()

# 示例用法
run_command("ls -l")

在这个示例中,run_command函数接受一个命令作为参数,并使用subprocess.Popen启动一个子进程。然后使用stdoutstderr参数分别指定输出和错误流。在一个无限循环中,通过readline方法读取输出和错误流的每一行,并使用decode方法将字节转换为字符串。然后使用strip方法去除行尾的换行符并打印输出。如果读取到的行为空(即子进程结束),则退出循环。最后使用process.wait等待子进程结束。

相关内容

热门资讯

揭幕透视!wepoker软件安... 揭幕透视!wepoker软件安装包,微乐小程序外辅助工具,步骤教程(有挂教学)-哔哩哔哩1、全新机制...
揭露透视!wejoker免费脚... 揭露透视!wejoker免费脚本,微乐家乡app辅助器,绝活教程(有挂神器)-哔哩哔哩暗藏猫腻,小编...
有挂透视!wepoker看底牌... 有挂透视!wepoker看底牌,微乐家乡小程序脚本,方式教程(有挂分析)-哔哩哔哩1、wepoker...
教你透视!德州局透视,微乐自建... 教你透视!德州局透视,微乐自建房免费黑科技推荐,机巧教程(有挂存在)-哔哩哔哩1、每一步都需要思考,...
曝光透视!德普之星辅助器,微乐... 曝光透视!德普之星辅助器,微乐自建房怎么挂脚本,演示教程(有挂秘笈)-哔哩哔哩进入游戏-大厅左侧-新...
科普透视!佛手在线大菠萝智能辅... 科普透视!佛手在线大菠萝智能辅助器,微信小程序游戏破解微乐游戏,教程书教程(有挂辅助)-哔哩哔哩1、...
总结透视!werplan透视挂... 总结透视!werplan透视挂,微乐小程序辅助器免费安卓,方案教程(有挂头条)-哔哩哔哩1、上手简单...
详情透视!wepoker怎么获... 详情透视!wepoker怎么获得好牌,陕西微乐挖坑小程序脚本,练习教程(有挂方法)-哔哩哔哩1、详情...
教你透视!epoker有透视吗... 教你透视!epoker有透视吗,微信微乐辅助透视,手段教程(果真有挂)-哔哩哔哩1、每一步都需要思考...
辅助透视!wepoker辅助器... 辅助透视!wepoker辅助器下载,微乐自建房脚本免费入口,技法教程(了解有挂)-哔哩哔哩;进入游戏...