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之有容乃大的list(3)
Sep 15 Python
Python 爬虫的工具列表大全
Jan 31 Python
对numpy中数组转置的求解以及向量内积计算方法
Oct 31 Python
pygame游戏之旅 python和pygame安装教程
Nov 20 Python
Python进阶之@property动态属性的实现
Apr 01 Python
python conda操作方法
Sep 11 Python
利用pytorch实现对CIFAR-10数据集的分类
Jan 14 Python
python判断链表是否有环的实例代码
Jan 31 Python
Python基于class()实现面向对象原理详解
Mar 26 Python
使用Python构造hive insert语句说明
Jun 06 Python
pytorch查看模型weight与grad方式
Jun 24 Python
[原创]赚疯了!转手立赚800+?大佬的python「抢茅台脚本」使用教程
Jan 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录入页面中动态从数据库中提取数据的实现
2006/10/09 PHP
深入apache host的配置详解
2013/06/09 PHP
PHPExcel内存泄漏问题解决方法
2015/01/23 PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
2019/10/11 PHP
php桥接模式应用案例分析
2019/10/23 PHP
Js 刷新框架页的代码
2010/04/13 Javascript
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
jquery链式操作的正确使用方法
2014/01/06 Javascript
js 绑定键盘鼠标事件示例代码
2014/02/12 Javascript
js实现带关闭按钮始终显示在网页最底部工具条的方法
2015/03/02 Javascript
JavaScript中标识符提升问题
2015/06/11 Javascript
对象转换为原始值的实现方法
2016/06/06 Javascript
js实现图片轮播效果学习笔记
2017/07/26 Javascript
JS实现运动缓冲效果的封装函数示例
2018/02/18 Javascript
JS扩展String.prototype.format字符串拼接的功能
2018/03/09 Javascript
用Fundebug插件记录网络请求异常的方法
2019/02/21 Javascript
详解关于表格合并span-method方法的补充(表格数据由后台动态返回)
2019/05/21 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
2019/10/12 Javascript
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
[02:20]2014DOTA2西雅图邀请赛 MVP外卡赛首胜采访
2014/07/09 DOTA
[01:32:22]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第一场 2月5日
2021/03/11 DOTA
Python实现字典的key和values的交换
2015/08/04 Python
Python实现iOS自动化打包详解步骤
2018/10/03 Python
python 获取url中的参数列表实例
2018/12/18 Python
python生成大写32位uuid代码
2020/03/03 Python
为什么称python为胶水语言
2020/06/16 Python
html5 Canvas画图教程(9)—canvas中画出矩形和圆形
2013/01/09 HTML / CSS
西班牙灯具网上商店:Lampara.es
2018/06/05 全球购物
建筑装饰学院室内设计专业个人自我评价
2013/12/07 职场文书
大学生军训自我鉴定
2014/02/12 职场文书
警察群众路线整改措施
2014/09/26 职场文书
离婚协议书包括哪些内容
2014/10/16 职场文书
2014年宣传工作总结
2014/11/18 职场文书
2014年社区教育工作总结
2014/12/02 职场文书
python基础之模块的导入
2021/10/24 Python