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 相关文章推荐
python3实现短网址和数字相互转换的方法
Apr 28 Python
九步学会Python装饰器
May 09 Python
Django中使用celery完成异步任务的示例代码
Jan 23 Python
PyQt5主窗口动态加载Widget实例代码
Feb 07 Python
Python中 传递值 和 传递引用 的区别解析
Feb 22 Python
解决pandas 作图无法显示中文的问题
May 24 Python
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
Mar 01 Python
django删除表重建的实现方法
Aug 28 Python
python 动态调用函数实例解析
Oct 21 Python
python FTP批量下载/删除/上传实例
Dec 22 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
Dec 31 Python
python如何提取英语pdf内容并翻译
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
人族 Terran 魔法与科技
2020/03/14 星际争霸
thinkPHP5.0框架自动加载机制分析
2017/03/18 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
JavaScript中Object和Function的关系小结
2009/09/26 Javascript
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
Javascript中的delete介绍
2012/09/02 Javascript
js setTimeout 参数传递使用介绍
2013/08/13 Javascript
js中call与apply的用法小结
2013/12/28 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
2014/03/28 Javascript
javascript中的throttle和debounce浅析
2014/06/06 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache详解
2016/04/11 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
浅谈Koa服务限流方法实践
2017/10/23 Javascript
vue-cli配置文件——config篇
2018/01/04 Javascript
浅析JS中什么是自定义react数据验证组件
2018/10/19 Javascript
Vue 实现手动刷新组件的方法
2019/02/19 Javascript
简单了解微信小程序的目录结构
2019/07/01 Javascript
p5.js码绘“跳动的小正方形”的实现代码
2019/10/22 Javascript
vue 在服务器端直接修改请求的接口地址
2020/12/19 Vue.js
使用Python3编写抓取网页和只抓网页图片的脚本
2015/08/20 Python
python处理html转义字符的方法详解
2016/07/01 Python
python实现二分查找算法
2017/09/21 Python
Python之文字转图片方法
2018/05/10 Python
python一键去抖音视频水印工具
2018/09/14 Python
Python限制内存和CPU使用量的方法(Unix系统适用)
2020/08/04 Python
HTML5中微数据概述及在搜索引擎中的使用举例
2013/02/07 HTML / CSS
J.Crew官网:美国知名休闲服装品牌
2017/05/19 全球购物
波兰最早的运动鞋精品店之一:Street Supply
2019/08/29 全球购物
Strathberry苏贝瑞中国官网:西班牙高级工匠手工打造
2020/10/19 全球购物
如果Session Bean得Remove方法一直都不被调用会怎么样
2012/07/14 面试题
校园联欢晚会主持词
2014/03/17 职场文书
地球一小时宣传标语
2014/06/24 职场文书
代领报检证委托书范本
2014/10/11 职场文书
校运会通讯稿
2015/07/18 职场文书
2016年社区六一儿童节活动总结
2016/04/06 职场文书