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自动化测试之setUp与tearDown实例
Sep 28 Python
Python中获取对象信息的方法
Apr 27 Python
Python运维之获取系统CPU信息的实现方法
Jun 11 Python
python 美化输出信息的实例
Oct 15 Python
python 顺时针打印矩阵的超简洁代码
Nov 14 Python
python 从文件夹抽取图片另存的方法
Dec 04 Python
pandas 数据索引与选取的实现方法
Jun 21 Python
用django-allauth实现第三方登录的示例代码
Jun 24 Python
使用turtle绘制五角星、分形树
Oct 06 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
Apr 26 Python
Python 没有main函数的原因
Jul 10 Python
python可视化大屏库big_screen示例详解
Nov 23 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多功能图片处理类
2016/05/15 PHP
yii2 resetful 授权验证详解
2017/05/18 PHP
微信支付之JSAPI公众号支付详解
2019/05/15 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
ASP 过滤数组重复数据函数(加强版)
2010/05/31 Javascript
jquery中eq和get的区别与使用方法
2011/04/14 Javascript
关于使用 jBox 对话框的提交不能弹出问题解决方法
2012/11/07 Javascript
JavaScript 语言基础知识点总结(思维导图)
2013/11/10 Javascript
javascript模拟C#格式化字符串
2015/08/26 Javascript
JS图片定时翻滚效果实现方法
2016/06/21 Javascript
javaScript嗅探执行神器-sniffer.js
2017/02/14 Javascript
JS中SetTimeout和SetInterval使用初探
2017/03/23 Javascript
React-router 4 按需加载的实现方式及原理详解
2017/05/25 Javascript
jquery动态添加带有样式的HTML标签元素方法
2018/02/24 jQuery
vue.js 图片上传并预览及图片更换功能的实现代码
2018/08/27 Javascript
vue-lazyload使用总结(推荐)
2018/11/01 Javascript
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
jQuery动态生成的元素绑定事件操作实例分析
2019/05/04 jQuery
layui表格 列自动适应大小失效的解决方法
2019/09/06 Javascript
vue中动态select的使用方法示例
2019/10/28 Javascript
vue 获取及修改store.js里的公共变量实例
2019/11/06 Javascript
vue+elementUI(el-upload)图片压缩,默认同比例压缩操作
2020/08/10 Javascript
[01:02:48]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Liquid
2018/04/03 DOTA
Linux中安装Python的交互式解释器IPython的教程
2016/06/13 Python
解决python文件字符串转列表时遇到空行的问题
2017/07/09 Python
Windows平台Python连接sqlite3数据库的方法分析
2017/07/12 Python
python实现自动发送邮件发送多人、群发、多附件的示例
2018/01/23 Python
Python常见字典内建函数用法示例
2018/05/14 Python
python 中如何获取列表的索引
2019/07/02 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
2020/01/09 Python
Python devel安装失败问题解决方案
2020/06/09 Python
猫咪家具:CatsPlay
2018/11/03 全球购物
sort命令的作用和用法
2012/11/04 面试题
高分子材料个人求职信范文
2013/09/25 职场文书
计算机考试作弊检讨书1000字
2015/01/01 职场文书
在职证明书模板
2015/06/15 职场文书