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读取Android permission文件
Nov 01 Python
Python下线程之间的共享和释放示例
May 04 Python
Python工程师面试必备25条知识点
Jan 17 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
Apr 02 Python
python破解zip加密文件的方法
May 31 Python
详解django2中关于时间处理策略
Mar 06 Python
Python利用matplotlib做图中图及次坐标轴的实例
Jul 08 Python
Python实现微信小程序支付功能
Jul 25 Python
Python Django2.0集成Celery4.1教程
Nov 19 Python
基于python模拟bfs和dfs代码实例
Nov 19 Python
详解python 条件语句和while循环的实例代码
Dec 28 Python
Python中request的基本使用解决乱码问题
Apr 12 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的mkdir()函数创建文件夹比较安全的权限设置方法
2014/07/28 PHP
ThinkPHP自动填充实现无限级分类的方法
2014/08/22 PHP
php通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
php 中的closure用法详解
2017/06/12 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
一些易混淆且不常用的属性,希望有用
2007/01/29 Javascript
js事件冒泡实例分享(已测试)
2013/04/23 Javascript
jQuery :first选择器使用介绍
2013/08/09 Javascript
jquery按回车提交数据的代码示例
2013/11/05 Javascript
js浮点数精确计算(加、减、乘、除)
2013/12/26 Javascript
原生JS实现平滑回到顶部组件
2016/03/16 Javascript
JavaScript动态生成二维码图片
2016/04/20 Javascript
jquery dataTable 获取某行数据
2017/05/05 jQuery
javascript实现二叉树的代码
2017/06/08 Javascript
javascript用rem来做响应式开发
2018/01/13 Javascript
vue中mint-ui的使用方法
2018/04/04 Javascript
如何使node也支持从url加载一个module详解
2018/06/05 Javascript
Python中endswith()函数的基本使用
2015/04/07 Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
2017/01/24 Python
Request的中断和ErrorHandler实例解析
2018/02/12 Python
10款最好的Python开发编辑器
2019/07/03 Python
Python中字典与恒等运算符的用法分析
2019/08/22 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
python实现控制台输出颜色
2021/03/02 Python
CSS3中的clip-path使用攻略
2015/08/03 HTML / CSS
HTML5 WebSocket实现点对点聊天的示例代码
2018/01/31 HTML / CSS
亚洲最大的眼镜批发商和零售商之一:Glasseslit
2018/10/08 全球购物
门卫班长岗位职责
2013/12/15 职场文书
大学毕业生个人自荐信范文
2014/01/08 职场文书
大学生志愿者感言
2014/01/15 职场文书
小学运动会报道稿
2015/07/22 职场文书
python随机打印成绩排名表
2021/06/23 Python
用Python编写简单的gRPC服务的详细过程
2021/07/04 Python
Python开发五子棋小游戏
2022/04/28 Python
分享很少见很有用的SQL功能CORRESPONDING
2022/08/05 MySQL