当前位置: 首页 > news >正文

python的subprocess 模块

subprocess 模块是 2.4 版本中新增的模块, 它允许您生成新进程,连接到它们的 输入 / 输出 / 错误 管道,并获得它们的返回码 (状态信息), 该模块的目的在于取代几个较旧的模块和功能

subprocess 模块可以用于执行系统命令, 拿到执行的结果, 速度比较的快, 并且它允许你创建一个新的进程让其去执行另外的程序, 并与它进行通信,获取标准的输入、标准输出、标准错误以及返回码等

1、简单执行命令拿到结果

import subprocess# shell是开启一个终端,stdout正确结果,stderr错误结果
obj = subprocess.Popen('dir',  # 在终端运行的命令shell=True,  # 新开一个终端stdout=subprocess.PIPE,  # 执行完命令, 将正确输出放到一个管道里stderr=subprocess.PIPE)  # 将错误输出放到一个管道里
# 正确的输出结果
result = obj.stdout.read()  # 拿到的是 bytes 格式的字符,生成的结果需要解码,
result = result.decode('gbk')  # 在windows需要使用gbk编码,linux和mac上是"utf-8"
print(result)# 错误的输出结果
error_res = obj.stderr.read()
error_res = error_res.decode('gbk')
print(error_res)

输出结果:

C:\Users\Anita\AppData\Local\Programs\Python\Python38\python.exe D:\systemdoc\desk\subprocess模块\demo001.py 驱动器 D 中的卷是 新加卷卷的序列号是 48E6-1CBAD:\systemdoc\desk\subprocess模块 的目录2024/06/18  21:50    <DIR>          .
2024/06/18  21:50    <DIR>          ..
2024/06/18  21:28    <DIR>          .idea
2024/06/18  21:50               744 demo001.py1 个文件            744 字节3 个目录 43,191,549,952 可用字节

2、将第一次执行命令拿到的结果进行第二次操作

import subprocessres1 = subprocess.Popen(  # 开启的第一的进程"dir",shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,
)res2 = subprocess.Popen(  # 开启的第二个进程"findstr demo*",     #在dir的结果中查询包含demo*的文件shell=True,stdin=res1.stdout,  # 将第一个进程的正确输出结果拿到做处理stdout=subprocess.PIPE,stderr=subprocess.PIPE,
)result = res2.stdout.read()
result = str(result, encoding="gbk")
print(result)

运行结果:

C:\Users\Anita\AppData\Local\Programs\Python\Python38\python.exe D:\systemdoc\desk\subprocess模块\demo001.py 
2024/06/18  21:56               487 demo001.py

3、直接一条终端命令实现上面的操作

import subprocessres1 = subprocess.Popen("dir | findstr demo*",  # 使用管道符号运行命令shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,
)result = res1.stdout.read()
result = str(result, encoding="gbk")
print(result)

相关文章:

python的subprocess 模块

subprocess 模块是 2.4 版本中新增的模块, 它允许您生成新进程&#xff0c;连接到它们的 输入 / 输出 / 错误 管道&#xff0c;并获得它们的返回码 (状态信息), 该模块的目的在于取代几个较旧的模块和功能 subprocess 模块可以用于执行系统命令, 拿到执行的结果, 速度比较的快…...

【Arc gis】使用DEM提取流域范围

地址&#xff1a;arcgis DEM 提取流域范围&#xff08;详细教程&#xff09;(空间分析--Hydrology)_gis的gridcode是什么意思-CSDN博客...

大模型技术工程师:抓住时代机遇,成为行业精英_

伴随AI大模型的火热&#xff0c;中国科技大厂们正在掀起一场「跑步AI化」的风暴。从顶层战略到业务线重构&#xff0c;AI无疑已成为大厂们押注未来的新故事。 大模型时代已经到来 大模型已成为全球竞争热点&#xff0c;一个大模型时代已经到来。 大模型具备三个特点&#xf…...

孟德尔随机化R包:TwoSampleMR和MR-PRESSO安装

1. 孟德尔随机化R包 看一篇文章&#xff0c;介绍孟德尔随机化分析&#xff0c;里面推荐了这两个R包&#xff0c;安装了解一下&#xff1a; Methods:Genome-wide association study (GWAS) data for autoimmune diseases and AMD were obtained from the IEU Open GWAS databas…...

6月18日 Qtday4

作业day4.1 作业4.2...

Vue3模拟国足18强赛抽签

Vue3国足18强赛抽签 国足遇到这个对阵&#xff0c;能顺利出现吗&#xff1f; 1、系统演示 Vue3模拟国足18强赛抽签 2、关键代码 开始抽签 <script setup> import FenDang from "/components/chouqian/FenDang.vue"; import {ref} from "vue";le…...

mesa编译器nir信息储存问题

概述 本来想将一个完整的可以从hlsl-dxil-spirv-nir-code的项目划分为两个动态库a.dll与b.dll。应用程序调用a.dll与b.dll执行相同的过程。 a.dll&#xff1a;执行dxil-spirv-nir前端相关的转换。 b.dll&#xff1a;执行nir-code的转换。 应用程序调用dxc实现hlsl-dxil的过程&…...

windows下mysql设置开机自启动

windows下mysql设置开机自启动 情况1.mysql服务不存在情况2.mysql服务已存在 我们先检查一下电脑是否存在mysql服务 此电脑(右键)—>管理—>服务 看一下能不能找到相关mysql 服务 情况1.mysql服务不存在 以管理员的身份运行命令窗口,找到mysqld.exe 所在的路径 命令如下…...

L2-002 链表去重(C++)

给定一个带整数键值的链表 L&#xff0c;你需要把其中绝对值重复的键值结点删掉。即对每个键值 K&#xff0c;只有第一个绝对值等于 K 的结点被保留。同时&#xff0c;所有被删除的结点须被保存在另一个链表上。例如给定 L 为 21→-15→-15→-7→15&#xff0c;你需要输出去重后…...

异或运算在面试题中的应用

异或运算 是 涉及到数据位运算时常见的处理方式。如何进行异或运算?在对应位上,相同为0,不同1,但其实两个数据异或运算就是进行无进位加法。 例如: int a = 7, b = 6, a ^b = ? 算法1: 相同为0,不同为1 a ^ b= : 0 0 0 1 算法2: 无进位…...

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 单词大师(100分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; &#x1f…...

LabVIEW在SpaceX的应用

结合真实的资料介绍LabVIEW在SpaceX的应用&#xff0c;涵盖自动化测试系统、数据采集与监控、可视化与分析、模块化设计与扩展&#xff0c;以及效率与可靠性的提高。 ​ 自动化测试系统 LabVIEW在SpaceX的自动化测试系统中发挥了关键作用。自动化测试是确保SpaceX火箭及其子系…...

【Android面试八股文】讲一讲String、StringBuffer和StringBuilder在进行字符串操作时候的效率

文章目录 一、String二、StringBuffer三、StringBuilder四、String、StringBuffer和StringBuilder的效率测试五、String、StringBuffer和StringBuilder的选择一、String String是不可变的,final修饰,任何对String的操作都会创建一个新的String对象。在进行大量字符串拼接或修…...

[自动驾驶 SoC]-4 特斯拉FSD

FSD, 参考资料来源FSD Chip - Tesla - WikiChip 另外可参考笔者之前分享文章&#xff1a;[自动驾驶技术]-6 Tesla自动驾驶方案之硬件&#xff08;AI Day 2021&#xff09;&#xff0c;​​​​​​​[自动驾驶技术]-8 Tesla自动驾驶方案之硬件&#xff08;AI Day 2022&#xf…...

PostgreSQL源码分析——物化视图

我们前面分析完视图后&#xff0c;这里再继续分析一下物化视图&#xff0c;其实现原理是不相同的&#xff0c;需要注意&#xff0c;物化视图等于是将返回的结果集缓存起来&#xff0c;而视图是查询重写&#xff0c;结果需要重新进行计算。 create materialized view matvt1 as…...

操作系统入门系列-MIT6.828(操作系统工程)学习笔记(七)---- 系统调用函数与GDB(Lab: system calls)

系列文章目录 操作系统入门系列-MIT6.828&#xff08;操作系统工程&#xff09;学习笔记&#xff08;一&#xff09;---- 操作系统介绍与接口示例 操作系统入门系列-MIT6.828&#xff08;操作系统工程&#xff09;学习笔记&#xff08;二&#xff09;---- 课程实验环境搭建&am…...

ORA-12560: TNS:协议适配器错误

项目场景&#xff1a; 由于最近一直没有连接oracle&#xff0c;然后之前windows也是正常可以启动oracle&#xff0c;正常连接。无论是SQL Developer还是SQL PLUS命令&#xff0c;都能正常连接和操作。 问题描述 这两天刚好用SQL Developer工具连接&#xff0c;然后报错&#…...

不容小觑的“白纸黑字”:银行重空凭证的风险与防控

一、定义与重要性 定义&#xff1a; 银行重空凭证&#xff0c;也称为重要空白凭证&#xff0c;是银行专业术语&#xff0c;指银行印制的无面额、经银行或单位填写金额并签章后&#xff0c;即具有支取款项效力的空白凭证。 重要性&#xff1a; 它是银行资金支付的重要工具&a…...

30v-180V降3.3V100mA恒压WT5107

30v-180V降3.3V100mA恒压WT5107 WT5107是一款恒压单片机供电芯片&#xff0c;它可以30V-180V直流电转换成稳定的3.3V直流电&#xff08;最大输出电流300mA&#xff09;&#xff0c;为各种单片机供电。WT5107的应用也非常广泛。它可以用于智能家居、LED照明、电子玩具等领域。比…...

Spring Boot 和 Spring Cloud 的区别及选型

Spring Boot 和 Spring Cloud 是现代 Java 开发中非常流行的两个框架&#xff0c;它们分别解决了不同层次的问题。本文将详细介绍 Spring Boot 和 Spring Cloud 的区别&#xff0c;以及在不同场景下如何选择合适的技术。 Spring Boot 什么是 Spring Boot Spring Boot 是一个…...

Shiny框架终极指南:输入控件与输出渲染的完美交互原理

Shiny框架终极指南&#xff1a;输入控件与输出渲染的完美交互原理 【免费下载链接】shiny Easy interactive web applications with R 项目地址: https://gitcode.com/gh_mirrors/sh/shiny Shiny是R语言生态中一款强大的交互式Web应用框架&#xff0c;它让数据科学家和分…...

cobalt数据库设计解析:如何平衡性能与数据完整性

cobalt数据库设计解析&#xff1a;如何平衡性能与数据完整性 【免费下载链接】cobalt best way to save what you love 项目地址: https://gitcode.com/GitHub_Trending/cob/cobalt 引言&#xff1a;数据库设计的永恒矛盾 在软件开发领域&#xff0c;数据库设计始终面临…...

腾讯混元翻译模型HY-MT1.5-1.8B:免费开源,企业级翻译解决方案

腾讯混元翻译模型HY-MT1.5-1.8B&#xff1a;免费开源&#xff0c;企业级翻译解决方案 1. 引言 1.1 为什么选择HY-MT1.5-1.8B 在全球化的商业环境中&#xff0c;语言障碍成为企业拓展国际市场的首要挑战。腾讯混元团队推出的HY-MT1.5-1.8B翻译模型&#xff0c;以其18亿参数的…...

掌握罗技鼠标宏的5个技术维度:从原理到实战优化

掌握罗技鼠标宏的5个技术维度&#xff1a;从原理到实战优化 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 一、技术原理解析&#xff1a;机械补…...

FreeRTOS进阶:任务优先级与调度策略深度解析

1. FreeRTOS任务优先级基础 在嵌入式实时操作系统中&#xff0c;任务优先级决定了任务执行的先后顺序。FreeRTOS采用数值越大优先级越高的设计&#xff0c;优先级范围通常为0到(configMAX_PRIORITIES-1)。我刚开始接触FreeRTOS时&#xff0c;经常混淆这个概念&#xff0c;直到在…...

3步解锁音乐自由:NCMDump帮你破解网易云音乐NCM格式

3步解锁音乐自由&#xff1a;NCMDump帮你破解网易云音乐NCM格式 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为下载的网易云音乐只能在特定App里播放而烦恼吗&#xff1f;当你精心挑选的歌单无法在车载音响、运动手表或家庭音…...

Pixel Epic智识终端入门:动态卷轴输出中断恢复与断点续写功能

Pixel Epic智识终端入门&#xff1a;动态卷轴输出中断恢复与断点续写功能 1. 认识Pixel Epic智识终端 Pixel Epic智识终端是一款基于AgentCPM-Report大模型构建的研究报告辅助工具。与传统AI工具不同&#xff0c;它将枯燥的科研过程转化为一场像素风格的RPG冒险。在这个虚拟世…...

WAN2.2文生视频效果实测对比:不同SDXL风格对动态连贯性的影响分析

WAN2.2文生视频效果实测对比&#xff1a;不同SDXL风格对动态连贯性的影响分析 最近在玩WAN2.2文生视频模型时&#xff0c;我发现一个挺有意思的现象&#xff1a;虽然模型本身很强大&#xff0c;但生成的视频效果好不好&#xff0c;很大程度上取决于你选的“风格”。WAN2.2集成…...

Ostrakon-VL扫描终端效果展示:同一张图的商品识别+空缺定位双输出

Ostrakon-VL扫描终端效果展示&#xff1a;同一张图的商品识别空缺定位双输出 1. 像素特工&#xff1a;零售场景的AI扫描专家 想象一下&#xff0c;你走进一家便利店&#xff0c;货架上琳琅满目的商品中&#xff0c;有些位置空空如也。传统的人工巡检需要店员逐一检查&#xf…...

Wan2.2-T2V-A5B开发环境配置:IntelliJ IDEA远程调试与GPU服务器连接

Wan2.2-T2V-A5B开发环境配置&#xff1a;IntelliJ IDEA远程调试与GPU服务器连接 你是不是也遇到过这种烦恼&#xff1f;本地电脑性能有限&#xff0c;跑个稍微大点的模型就卡成幻灯片&#xff0c;风扇呼呼作响&#xff0c;感觉下一秒就要起飞。但代码和模型都部署在远端的GPU服…...