IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python3 subprocess.Popen监控控制台输出 -> 正文阅读

[Python知识库]python3 subprocess.Popen监控控制台输出

问题描述: ①在 Python 代码中编译可执行文件,需要监控执行过程及运行结果,当前场景等效为捕获控制台的特征信息的“打印情况”;②编译程序独占进程,且存在Terminal进度条等频繁刷新的需要监控的特征信息;③需要捕获的特征信息存在简体中文,需要做编码转换;

解决方案: 如下所示为本例参考代码。使用 Python3 内置模块 subprocess.Popen 建立channel 。设定参数encoding='utf8',转码简体中文。设定universal_newlines=True以及bufsize=1建立缓冲区,以便捕获频繁刷新的进度条等特征信息。

"""
仅用作demo演示,请勿在真实IPC场景下直接cv代码
sys: Windows
env: Python 3.7.9
"""
import os
import subprocess

title = ""


def _listener():
    global title
    # 如果您还未安装you-get脚手架 请先执行 pip install you-get 或 pip3 install you-get
    # 尝试直接在 Terminal 中运行 `you-get [url]` 查看区别
    # you-get 将嗅探目标链接下的影视资源对象,并保存至当前目录下
    cmd = "you-get https://www.bilibili.com/video/BV1Yv41147QK".split(' ')
    p = subprocess.Popen(
        cmd,
        stdin=subprocess.PIPE,
        stdout=subprocess.PIPE,
        stderr=subprocess.STDOUT,
        universal_newlines=True,
        encoding='utf8',
        bufsize=1
    )
    while subprocess.Popen.poll(p) is None:
        stream = p.stdout.readline()
        print(stream)

        # 仅做演示,首次下载时捕获视频文件名
        if title == "" and stream.startswith("Downloading"):
            title = stream.split(' ')[1]


def demo():
    _listener()
	
	# 仅作演示,自动打开下载好的视频
    try:
        os.startfile(f'{title}')
    except (FileNotFoundError, FileExistsError):
        pass


if __name__ == '__main__':
    demo()

参考资料:
[1] subprocess — Subprocess management — Python 3.7.11 documentation

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-16 11:42:01  更:2021-08-16 11:43:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:39:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码