Python中subprocess的简单使用示例


Posted in Python onJuly 28, 2015

在c语言中,一个进程可以fork出一个子进程,并让这个子进程exec一个新的命令。在python中,我们通过标准库的subprocess包来fork一个子进程,并在子进程中运行一个新的程序。

subprocess包中有数个创建子进程的函数,这些函数分别以不同的方式创建子进程,所以我们可以根据需要来从中选取一个使用。另外subprocess还提供了一些管理标准流(standard stream)和管道(pipe)的工具,从而在进程间使用文本通信。

使用subprocess包中的函数创建子进程的时候,需要注意:

  •     在创建子进程之后,父进程是否暂停,并等待子进程运行。
  •     函数返回什么
  •     当return code不为0时,父进程如何处理。

subprocess.call()

函数原型:

subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False, timeout=None)

函数解释:
父进程等待子进程完成,返回执行是否成功。
subprocess.Popen

函数原型:

subprocess.Popen(args, bufsize=-1, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=True, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0, restore_signals=True, start_new_session=False, pass_fds=())

Popen对象创建后,主程序不会自动等待子进程完成。我们必须调用[/code]对象的wait()方法,父进程才会等待 (也就是阻塞block)。

Python 相关文章推荐
Python文件及目录操作实例详解
Jun 04 Python
python测试mysql写入性能完整实例
Jan 18 Python
Python解析并读取PDF文件内容的方法
May 08 Python
python 基本数据类型占用内存空间大小的实例
Jun 12 Python
Python类的继承、多态及获取对象信息操作详解
Feb 28 Python
在Python函数中输入任意数量参数的实例
Jul 16 Python
浅析PyTorch中nn.Linear的使用
Aug 18 Python
Python手绘可视化工具cutecharts使用实例
Dec 05 Python
tensorflow 查看梯度方式
Feb 04 Python
在pycharm中为项目导入anacodna环境的操作方法
Feb 12 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
Aug 17 Python
python反编译教程之2048小游戏实例
Mar 03 Python
Python中文竖排显示的方法
Jul 28 #Python
Python中的getopt函数使用详解
Jul 28 #Python
Python3访问并下载网页内容的方法
Jul 28 #Python
python3抓取中文网页的方法
Jul 28 #Python
python列表操作之extend和append的区别实例分析
Jul 28 #Python
python创建列表并给列表赋初始值的方法
Jul 28 #Python
python更新列表的方法
Jul 28 #Python
You might like
最新的php 文件上传模型,支持多文件上传
2009/08/13 PHP
php的ajax框架xajax入门与试用介绍
2010/12/19 PHP
php生成excel列序号代码实例
2013/12/24 PHP
PHP封装的MSSql操作类完整实例
2016/05/26 PHP
php版微信公众号自定义分享内容实现方法
2016/09/22 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
类似框架的js代码
2006/11/09 Javascript
Add Formatted Data to a Spreadsheet
2007/06/12 Javascript
javascript 拖动表格行实现代码
2011/05/05 Javascript
让你的CSS像Jquery一样做筛选的实现方法
2011/07/10 Javascript
JS 各种网页尺寸判断实例方法
2013/04/18 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
2013/08/28 Javascript
Jquery 切换不同图片示例代码
2013/12/05 Javascript
JQuery对表单元素的基本操作使用总结
2014/07/18 Javascript
jquery 操作css样式、位置、尺寸方法汇总
2014/11/28 Javascript
nodejs修复ipa处理过的png图片
2016/02/17 NodeJs
jQuery的ready方法实现原理分析
2016/10/26 Javascript
JS日程管理插件FullCalendar简单实例
2017/02/07 Javascript
js中let和var定义变量的区别
2018/02/08 Javascript
微信小程序自定义弹窗实现详解(可通用)
2019/07/04 Javascript
python通过urllib2爬网页上种子下载示例
2014/02/24 Python
Python读写Redis数据库操作示例
2014/03/18 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
Python之Class&Object用法详解
2019/12/25 Python
Pytorch 使用CNN图像分类的实现
2020/06/16 Python
关于 HTML5 的七个传说小结
2012/04/12 HTML / CSS
英国著名的茶叶品牌:Whittard of Chelsea
2016/09/22 全球购物
Mankind西班牙男士护肤品网站:购买皮肤护理、护发和剃须
2017/04/27 全球购物
什么是唯一索引
2015/07/05 面试题
爱心捐款倡议书范文
2014/05/12 职场文书
秦兵马俑导游词
2015/02/02 职场文书
无锡灵山大佛导游词
2015/02/09 职场文书
婚庆公司开业主持词
2015/06/30 职场文书
解决Golang中goroutine执行速度的问题
2021/05/02 Golang
MySQL下使用Inplace和Online方式创建索引的教程
2021/05/26 MySQL
Redis超详细讲解高可用主从复制基础与哨兵模式方案
2022/04/07 Redis