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字典基本操作实例分析
Jul 11 Python
深入理解Python3 内置函数大全
Nov 23 Python
python使用xpath中遇到:到底是什么?
Jan 04 Python
Python数据分析之获取双色球历史信息的方法示例
Feb 03 Python
利用python实现微信头像加红色数字功能
Mar 26 Python
浅谈python实现Google翻译PDF,解决换行的问题
Nov 28 Python
python使用QQ邮箱实现自动发送邮件
Jun 22 Python
Python grequests模块使用场景及代码实例
Aug 10 Python
无需压缩软件,用python帮你操作压缩包
Aug 17 Python
Python根据字典的值查询出对应的键的方法
Sep 30 Python
Django Form常用功能及代码示例
Oct 13 Python
python实战之一步一步教你绘制小猪佩奇
Apr 22 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
实用函数5
2007/11/08 PHP
简单实现限定phpmyadmin访问ip的方法
2013/03/05 PHP
php获取访问者IP地址汇总
2015/04/24 PHP
php处理带有中文URL的方法
2016/07/11 PHP
php出租房数据管理及搜索页面
2017/05/23 PHP
jquery Firefox3.5中操作select的问题
2009/07/10 Javascript
jQuery帮助之CSS尺寸(五)outerHeight、outerWidth
2009/11/14 Javascript
kmock javascript 单元测试代码
2011/02/06 Javascript
使用js对select动态添加和删除OPTION示例代码
2013/08/12 Javascript
判断字符串的长度(优化版)中文占两个字符
2014/10/30 Javascript
在linux中使用包管理器安装node.js
2015/03/13 Javascript
分享五个有用的jquery小技巧
2015/10/08 Javascript
BootStrap glyphicon图标无法显示的解决方法
2016/09/06 Javascript
需要牢记的JavaScript基础知识
2016/09/25 Javascript
JavaScript递归操作实例浅析
2016/10/31 Javascript
Html5 js实现手风琴效果
2020/04/17 Javascript
详解react-native-fs插件的使用以及遇到的坑
2017/09/12 Javascript
Webstorm2016使用技巧(SVN插件使用)
2018/10/29 Javascript
JQuery判断radio单选框是否选中并获取值的方法
2019/01/17 jQuery
Node.js原生api搭建web服务器的方法步骤
2019/02/15 Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
2019/03/19 jQuery
解决vue侦听器watch,调用this时出现undefined的问题
2020/10/30 Javascript
用Python的pandas框架操作Excel文件中的数据教程
2015/03/31 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
2018/01/24 Python
python实现日志按天分割
2019/07/22 Python
Python转换itertools.chain对象为数组的方法
2020/02/07 Python
如何通过python实现IOU计算代码实例
2020/11/02 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
2020/11/17 Python
英国羊绒服装购物网站:Pure Collection
2018/10/22 全球购物
Nike墨西哥官网:Nike MX
2020/08/30 全球购物
一份Java笔试题
2012/02/21 面试题
人事任命书怎么写
2014/06/05 职场文书
服务标语大全
2014/06/18 职场文书
2015年优质护理服务工作总结
2015/04/08 职场文书
毕业生求职自荐信(2016最新版)
2016/01/28 职场文书
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
2021/06/07 Python