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牛刀小试密码爆破
Feb 03 Python
Python写的创建文件夹自定义函数mkdir()
Aug 25 Python
python自动化测试之连接几组测试包实例
Sep 28 Python
利用Python的Flask框架来构建一个简单的数字商品支付解决方案
Mar 31 Python
ubuntu中配置pyqt4环境教程
Dec 27 Python
Python中常用的内置方法
Jan 28 Python
Python 自动登录淘宝并保存登录信息的方法
Sep 04 Python
解决python彩色螺旋线绘制引发的问题
Nov 23 Python
Python脚本去除文件的只读性操作
Mar 05 Python
Python实现随机爬山算法
Jan 29 Python
解决pycharm不能自动保存在远程linux中的问题
Feb 06 Python
Python初识逻辑与if语句及用法大全
Aug 07 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调用数据库的存贮过程!
2006/10/09 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
PHP中TP5 上传文件的实例详解
2017/07/31 PHP
在laravel5.2中实现点击用户头像更改头像的方法
2019/10/14 PHP
xmlHTTP实例
2006/10/24 Javascript
javascript 获取所有id中包含某关键字的控件的实现代码
2010/11/25 Javascript
JS编程小常识很有用
2012/11/26 Javascript
Javascript中 关于prototype属性实现继承的原理图
2013/04/16 Javascript
浅谈JavaScript之事件绑定
2013/07/08 Javascript
利用cookie记住背景颜色示例代码
2013/11/04 Javascript
javascript的事件触发器介绍的实现
2014/06/05 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/09/26 Javascript
七夕情人节丘比特射箭小游戏
2015/08/20 Javascript
详解JavaScript的表达式与运算符
2015/11/30 Javascript
json定义及jquery操作json的方法
2016/10/03 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
2016/11/30 Javascript
微信小程序 用户数据解密详细介绍
2017/01/09 Javascript
canvas实现图像放大镜
2017/02/06 Javascript
JavaScript 数组的进化与性能分析
2017/09/18 Javascript
JS常见构造模式实例对比分析
2018/08/27 Javascript
js作用域和作用域链及预解析
2019/04/11 Javascript
layui使用表格渲染获取行数据的例子
2019/09/13 Javascript
python使用Berkeley DB数据库实例
2014/09/26 Python
Python基础之getpass模块详细介绍
2017/08/10 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
python实现复制文件到指定目录
2019/10/16 Python
python修改文件内容的3种方法详解
2019/11/15 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
CSS3实现王者荣耀匹配人员加载页面的方法
2019/04/16 HTML / CSS
EJB的几种类型
2012/08/15 面试题
面试后的英文感谢信
2014/02/01 职场文书
学生党员的自我评价范文
2014/03/01 职场文书
物业管理专业自荐信
2014/07/01 职场文书
副校长竞聘演讲稿
2014/09/01 职场文书
任命通知范文
2015/04/21 职场文书