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开发windows GUI程序入门实例
Oct 23 Python
Python简明入门教程
Aug 04 Python
python中函数总结之装饰器闭包详解
Jun 12 Python
Python环境变量设置方法
Aug 28 Python
老生常谈Python序列化和反序列化
Jun 28 Python
Flask实现图片的上传、下载及展示示例代码
Aug 03 Python
解决Python 使用h5py加载文件,看不到keys()的问题
Feb 08 Python
python numpy实现文件存取的示例代码
May 26 Python
python 叠加等边三角形的绘制的实现
Aug 14 Python
python使用matplotlib:subplot绘制多个子图的示例
Sep 24 Python
python中子类与父类的关系基础知识点
Feb 02 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
Feb 25 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实现邮件发送并带有附件
2014/01/24 PHP
PHP中array_map与array_column之间的关系分析
2014/08/19 PHP
php中smarty变量修饰用法实例分析
2015/06/11 PHP
php进程(线程)通信基础之System V共享内存简单实例分析
2019/11/09 PHP
javascript 写类方式之一
2009/07/05 Javascript
多浏览器兼容的获取元素和鼠标的位置的js代码
2009/12/15 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
2014/11/26 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
2016/02/06 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
2016/03/30 Javascript
jQuery 跨域访问解决原理案例详解
2016/07/09 Javascript
js实现精确到毫秒的倒计时效果
2016/08/05 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
AngularJS bootstrap启动详解及实例代码
2016/09/14 Javascript
JS只能输入正整数的简单实例
2016/10/07 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
2017/07/06 Javascript
Vue实现移动端左右滑动效果的方法
2018/11/27 Javascript
微信小程序实现录音时的麦克风动画效果实例
2019/05/18 Javascript
python调用java的Webservice示例
2014/03/10 Python
Python和php通信乱码问题解决方法
2014/04/15 Python
玩转python爬虫之URLError异常处理
2016/02/17 Python
Python实现Linux中的du命令
2017/06/12 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
Python分支语句与循环语句应用实例分析
2019/05/07 Python
使用Python实现将list中的每一项的首字母大写
2019/06/11 Python
python selenium操作cookie的实现
2020/03/18 Python
Python3标准库之dbm UNIX键-值数据库问题
2020/03/24 Python
Python解析微信dat文件的方法
2020/11/30 Python
使用css3实现超炫的loading加载动画效果
2014/05/07 HTML / CSS
html5构建触屏网站之touch事件介绍
2013/01/07 HTML / CSS
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
2014年会演讲稿范文
2014/01/06 职场文书
2014最新离职证明范本
2014/09/12 职场文书
破坏寝室公物检讨书
2014/11/17 职场文书
2014年妇产科工作总结
2014/12/08 职场文书