Python subprocess模块功能与常见用法实例详解

prome cef subprocess已停止工作_Internet Explorer已停止工作 Internet Explorer已停止工作,如下图所示:Internet Explorer已停止工作,是IE32位报错,64位IE使用正常IE版本如下:IE8(此处截图被截成64位,其实应该截32位的IE)问题签名:问题事件名称:APPCRASH应用程序名:iexplore.exe应用程序版本:8.0.7601.18934应用程序时间戳:55a7e202故障模块名称... 阅读详情

本文实例讲述了Python subprocess模块功能与常见用法。分享给大家供大家参考,具体如下:

一、简介

subprocess最早在2.4版本引入。用来生成子进程,并可以通过管道连接他们的输入/输出/错误,以及获得他们的返回值。

subprocess用来替换多个旧模块和函数:

  • os.system
  • os.spawn*
  • os.popen*
  • popen2.*
  • commands.*

运行python的时候,我们都是在创建并运行一个进程,linux中一个进程可以fork一个子进程,并让这个子进程exec另外一个程序。在python中,我们通过标准库中的subprocess包来fork一个子进程,并且运行一个外部的程序。subprocess包中定义有数个创建子进程的函数,这些函数分别以不同的方式创建子进程,所欲我们可以根据需要来从中选取一个使用。另外subprocess还提供了一些管理标准流(standard stream)和管道(pipe)的工具,从而在进程间使用文本通信。

二、旧有模块的使用

1. os.system()

import os
# 0 表示执行成功
a = os.system("df -Th")
# 返回非 0 表示执行错误
os.system("list")

2. os.popen()

执行操作系统的命令,会将结果保存在内存当中,可以用 read() 方法读取出来.

import os
# <open file 'ls -l', mode 'r' at 0x7f02d249c390>
res = os.popen("ls -l")
print( res.read())

三、subprocess模块

1、subprocess.run()

import subprocess
# python 解析则传入命令的每个参数的列表
subprocess.run(["df","-h"])
#需要交给Linux shell自己解析,则:传入命令字符串,shell=True
subprocess.run("df -h|grep /dev/sda1",shell=True)

2、subprocess.call()

执行命令,返回命令的结果和执行状态,0或者非0

# 命令执行状态
res = subprocess.call(["ls","-l"])

3、subprocess.check_call()

执行命令,返回结果和状态,正常为0 ,执行错误则抛出异常

subprocess.check_call(["ls","-l"])

4、subprocess.getstatusoutput()

接受字符串形式的命令,返回 一个元组形式的结果,第一个元素是命令执行状态,第二个为执行结果

#执行正确
subprocess.getstatusoutput('pwd')
(0, '/root')

#执行错误
subprocess.getstatusoutput('pd')
(127, '/bin/sh: pd: command not found')

5、subprocess.getoutput()

接受字符串形式的命令,放回执行结果

subprocess.getoutput('pwd')
'/root'

6、subprocess.check_output()

执行命令,返回执行的结果,而不是打印

>>> res = subprocess.check_output("pwd")
>>> res
b'/root\n'
Python subprocess模块详细解读 本文研究的主要是Python subprocess模块的相关内容,具体如下。 在学习这个模块前,我们先用Python的help()函数查看一下subprocess模块是干嘛的: DESCRIPTION This module allows you to spawn processes, connect to their input/output/error pipes, and obtain their return codes. 即允许你去创建一个新的进程让其执行另外的程序,并与它进行通信,获取标准的输入、标准输出、标准错误以及返回码等。 注意:使用这个模块之前要先引入该模块。 Pop 立即下载

相关推荐

Java判断地图坐标(经度,纬度)是否在多边形区域或圆形区域内

​欢迎光临我的博客查看最新文章:在地图上,可以使用经纬度确定一个位置,如上海体育场(121.449391,31.188228),如果知道了2个地点的经纬度,我们就能在地图上找到其位置及2点的距离,百度地图或高德地图提供了相应的服务;如果将多个坐标点连成多边形区域,如何判断某个坐标点是否在多边形区域内,如下工具类。

river106的博客 3943

subprocess模块有什么用

它就像在python里面开一个cmd窗口, 然后做着你在cmd里面做的同样的事情

JackLi2021的博客 3718

实现 PDF 添加水印的五种方式

PDF(Portable Document Format,便携式文档格式)是一种流行的文件格式,它可以在多个操作系统和应用程序中进行查看和打印。在某些情况下,我们需要对 PDF 文件添加水印,以使其更具有辨识度或者保护其版权。本文将介绍如何使用 Spring Boot 来实现 PDF 添加水印的方式。

逸轩 6472

subprocess理解

Linux进程 导语 计算机实际上可以做的事情实质上非常简单,比如计算两个数的和,再比如在内存中寻找到某个地址等等。这些最基础的计算机动作被称为指令 (instruction)。所谓的程序(program),就是这样一系列指令的所构成的集合。通过程序,我们可以让计算机完成复杂的操作。程序大多数时候被存储为可执行的文件。这样一个可执行文件就像是一个菜谱,计算机可以按照菜谱作出可口的饭菜。 那么,程序...

Enjolras_fuu的博客 5904

SoC芯片时钟树优化实战:如何用分段CTS解决DDRPHY与Memory Controller的时序难题

本文深入探讨了SoC芯片时钟树优化中的分段CTS技术,重点解决DDRPHY与Memory Controller之间的时序难题。通过分析多域时钟架构的复杂性,提出三级分段CTS策略,并结合28nm移动SoC实战案例,展示如何通过Guide Buffer插入和本地段重构实现72%的跨域偏差改善。文章还涵盖5nm以下工艺的线阻变异、热梯度效应等特殊考量,为数字IC设计提供时钟树综合的高阶解决方案。

kkk56的博客 905

西威SIEI变频器与电梯主板及驱动板原理图解析与详解(共二十九页原厂PDF图纸)

通过本文的分析,可以了解到西威变频器的技术特点、维修需求以及相关的图纸获取途径。在今后的工作中,维修人员需要充分了解设备的电路图和原理图,掌握正确的维修技术和方法,确保设备的正常运行和延长使用寿命。对于维修人员来说,获取准确的变频器图纸是进行维修工作的基础。这些图纸包含了变频器的电路图、原理图以及相关的元件布局等信息,是维修人员了解设备工作原理、确定维修步骤的重要依据。西威变频器是一种高效、可靠的电机控制设备,广泛应用于电梯、空调、风机等领域的电机控制中。目前,西威提供的维修图纸主要以PDF格式为主。

lXSqtACEzg的博客 1114

python subprocess_Python subprocess模块功能与常见用法实例详解

本文实例讲述了Python subprocess模块功能与常见用法。分享给大家供大家参考,具体如下:一、简介subprocess最早在2.4版本引入。用来生成子进程,并可以通过管道连接他们的输入/输出/错误,以及获得他们的返回值。subprocess用来替换多个旧模块和函数:os.systemos.spawn*os.popen*popen2.*commands.*运行python的时候,我们都是在...

weixin_39575565的博客 450

四类九种移位寄存器总结(循环(左、右、双向)移位寄存器、逻辑和算术移位寄存器、串并转换移位寄存器、线性反馈移位寄存器LFSR|verilog代码|Testbench|仿真结果)

移位寄存器有哪些分类呢? 按移位方向分类:①单向移位寄存器(包括左移、右移)②双向移位寄存器 按循环方式分类:①循环移位寄存器②非循环移位寄存器 按部位的不同分类:①逻辑移位寄存器②算术移位寄存器 按输入输出方式分类:①串入串出②串入并出③并入串出④并入并出

Loudrs的博客 1万+

python中readall用法_Python subprocess模块功能与常见用法实例详解

本文实例讲述了Python subprocess模块功能与常见用法。分享给大家供大家参考,具体如下:一、简介subprocess最早在2.4版本引入。用来生成子进程,并可以通过管道连接他们的输入/输出/错误,以及获得他们的返回值。subprocess用来替换多个旧模块和函数:os.systemos.spawn*os.popen*popen2.*commands.*运行python的时候,我们都是在...

weixin_39600331的博客 353

PICO+Unity MR空间网格开发实战:从零构建透视交互场景

本文详细介绍了使用PICO 4 Ultra与Unity引擎进行MR空间网格开发的完整实战流程。从环境准备、项目初始化、核心组件配置,到空间网格的生成、可视化与物理交互实现,手把手教你构建一个能识别真实环境并发射虚拟小球的透视交互场景。文章重点解析了PICO SDK中空间网格功能的关键配置与优化技巧,并提供了真机部署与调试的实用指南。

e3f4g5的博客 490

ARM CMSIS DAP源码分析(二)

今天分析的是RDDI_DAP_GetARMRegs(DWORD *regs, DWORD *rfpu, ULONG64 mask)和RDDI_DAP_SetARMRegs(DWORD *regs, DWORD *rfpu, ULONG64 mask)这两个函数。 以RDDI_DAP_GetARMRegs(DWORD *regs, DWORD *rfpu, ULONG64 mask)为例,代码如下:

pengxiao618的专栏 7977

pythonres干什么用的_Python subprocess模块功能与常见用法实例详解

本文实例讲述了Python subprocess模块功能与常见用法。分享给大家供大家参考,具体如下:一、简介subprocess最早在2.4版本引入。用来生成子进程,并可以通过管道连接他们的输入/输出/错误,以及获得他们的返回值。subprocess用来替换多个旧模块和函数:os.systemos.spawn*os.popen*popen2.*commands.*运行python的时候,我们都是在...

weixin_40006185的博客 527

【YOLOv11工业级实战】22. YOLOv11动态蛇形卷积破解弯曲裂纹检测难题(附2小时部署代码)

摘要:本文聚焦工业场景中弯曲裂纹检测的核心痛点,针对风电叶片、织物纱线等曲线缺陷传统检测漏检率高的问题,提出基于动态蛇形卷积(DSC)的YOLOv11优化方案。因企业数据保密,采用AITEX织物缺陷库(含曲线纱线断裂标签)结合Blender物理仿真生成2000张弯曲裂纹数据,实现从数据准备到部署的全流程实操。通过将DSC模块插入YOLOv11 Neck层,弯曲裂纹召回率从68.1%提升至89.4%,mAP@0.5达83.7%,推理速度3.1ms(2080Ti)。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1153

python的pd模块使用,Python subprocess模块功能与常见用法实例详解

本文实例讲述了Python subprocess模块功能与常见用法。分享给大家供大家参考,具体如下:一、简介subprocess最早在2.4版本引入。用来生成子进程,并可以通过管道连接他们的输入/输出/错误,以及获得他们的返回值。subprocess用来替换多个旧模块和函数:os.systemos.spawn*os.popen*popen2.*commands.*运行python的时候,我们都是在...

weixin_36414864的博客 633

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Python subprocess模块功能与常见用法实例

本文实例讲述了Python subprocess模块功能与常见用法。 简介 subprocess可在python3.0中使用,用来生成子进程,并可以通过管道连接他们的输入/输出/错误,以及获得他们的返回值。subprocess用来替换多个旧模块和函数: os.system os.spawn* os.popen* popen2.* commands.* 运行python时,我们都是创建并运行一个...

yjk13703623757的博客 5810

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Python内置模块之subprocess详细功能介绍及示例

subprocessrun():简单执行命令并获取结果。Popen():底层控制,支持异步和交互。旧版函数:快速调用(check_call实际场景执行脚本或系统命令。动态交互式输入输出。并行任务处理。遵循最佳实践(如避免shell=True、处理超时),可以安全高效地管理子进程。

demonlg0112的博客 2047

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

掌握Python高级功能:深入理解subprocess模块

Python的subprocess模块是一个强大且灵活的工具,它允许开发者在Python脚本中启动新的进程,并与这些进程进行交互。通过subprocess模块,你可以执行系统命令、捕获输出、处理错误,甚至管理多个进程的并行执行。本文将深入探讨subprocess模块的核心功能和高级用法,帮助你更好地掌握这一强大的工具。

2410_89017463的博客 649

python基础subprocess使用场景、主要功能、高级用法;创建新进程、连接到其输入/输出/错误管道并获取其返回代码

如果你需要执行多个命令,并希望将它们的输出通过管道连接起来,subprocess也能轻松处理。subprocess 可以处理进程间的标准输入输出流,允许你向外部进程发送数据,并获取其输出。返回一个进程对象,你可以通过它进行更多控制,例如获取输出、错误信息,或者向子进程发送输入。在这个示例中,p1命令列出了文件,而p2则通过管道过滤出了所有的.py文件。处理系统任务,执行外部程序,捕获命令输出,甚至进行错误处理和超时控制。启用一个进程并等待其完成,执行指定的命令,并返回执行的结果。会返回命令执行的退出码。

风华浪浪的博客 1432

subprocess模块功能与常见用法实例详解

1、简介subprocess最早在2.4版本引入。用来生成子进程,并可以通过管道连接他们的输入/输出/错误,以及获得他们的返回值。subprocess用来替换多个旧模块和函数:os.sy...

yunweimao的博客 5950

python subprocess打开程序

我整理的一些关于【Python,python,外部程序】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/eDOcp1使用 Python 的 subprocess 模块打开程序 作为一名刚入行的开发者,掌握如何使用 Python 的 subprocess 模块是非常重要的。这个...

weixin_31100705的博客 286

python子进程模块subprocess详解与应用实例 一

一、subprocess 模块简介 subprocess最早是在2.4版本中引入的。 subprocess模块用来生成子进程,并可以通过管道连接它们的输入/输出/错误,以及获得它们的返回值。 它用来代替多个旧模块和函数: os.system os.spawn* os.popen* popen2.* commands.*关于这个模块可以取代的旧函数可以参见 subprocess-rep

funny75的专栏 1754

python模块学习:subprocess

在这里插入代码片。

m0_51047414的博客 553

Python的subprocess模块

目录 一、简介 二、旧有模块的使用 1.os.system() 2. os.popen() 三、subprocess模块 1、subprocess.run() 2、subprocess.call() 3、subprocess.check_call() 4、subprocess.getstatusoutput() 5、subprocess.getoutput() ...

txwsmsm7023_的博客 865

python中的subprocess.Popen()使用

python中的subprocess.Popen()使用

whuzhang16的博客 293
上一篇: Python 日期时间模块 Arrow库
下一篇: Python网络编程之线程队列(queue)
Webben
博客等级 码龄10年 19粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值