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字符串排序方法
Aug 29 Python
在Django中管理Users和Permissions以及Groups的方法
Jul 23 Python
Python使用Pycrypto库进行RSA加密的方法详解
Jun 06 Python
Tensorflow实现卷积神经网络的详细代码
May 24 Python
Python 监测文件是否更新的方法
Jun 10 Python
python2使用bs4爬取腾讯社招过程解析
Aug 14 Python
基于Python实现拆分和合并GIF动态图
Oct 22 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
Nov 29 Python
python 实现提取log文件中的关键句子,并进行统计分析
Dec 24 Python
浅谈anaconda python 版本对应关系
Oct 07 Python
在Python 中将类对象序列化为JSON
Apr 06 Python
如何利用python实现列表嵌套字典取值
Jun 10 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实现俄罗斯乘法实例
2015/03/07 PHP
php递归实现无限分类的方法
2015/07/28 PHP
php fseek函数读取大文件两种方法
2016/10/12 PHP
laravel手动创建数组分页的实现代码
2018/06/07 PHP
JavaScript的eval JSON object问题
2009/11/15 Javascript
基于jquery的防止大图片撑破页面的实现代码(立即缩放)
2011/10/24 Javascript
javascript延时加载之defer测试
2012/12/28 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
2013/05/26 Javascript
jQuery实现进度条效果代码
2015/12/17 Javascript
Bootstrap Navbar Component实现响应式导航
2016/10/08 Javascript
Angular 常用指令实例总结整理
2016/12/13 Javascript
angular实现页面打印局部功能的思考与方法
2018/04/13 Javascript
Vue导出页面为PDF格式的实现思路
2018/07/31 Javascript
浅谈ElementUI中switch回调函数change的参数问题
2018/08/24 Javascript
对vux点击事件的优化详解
2018/08/28 Javascript
Nuxt.js SSR与权限验证的实现
2018/11/21 Javascript
JavaScript函数式编程(Functional Programming)高阶函数(Higher order functions)用法分析
2019/05/22 Javascript
微信小程序开发实现消息推送
2020/11/18 Javascript
vue如何在用户要关闭当前网页时弹出提示的实现
2020/05/31 Javascript
antd配置config-overrides.js文件的操作
2020/10/31 Javascript
详解Python3中yield生成器的用法
2015/08/20 Python
详解Django之admin组件的使用和源码剖析
2018/05/04 Python
浅谈python中requests模块导入的问题
2018/05/18 Python
Python实现聊天机器人的示例代码
2018/07/09 Python
python的set处理二维数组转一维数组的方法示例
2019/05/31 Python
Django集成CAS单点登录的方法示例
2019/06/10 Python
pytorch获取模型某一层参数名及参数值方式
2019/12/30 Python
解决python 在for循环并且pop数组的时候会跳过某些元素的问题
2020/12/11 Python
YOOX美国官方网站:全球著名的多品牌时尚网络概念店
2016/09/11 全球购物
团支书的期末学习总结自我评价
2013/11/01 职场文书
会计助理岗位职责
2014/02/17 职场文书
班主任工作经验交流材料
2014/05/13 职场文书
大学毕业生自我评价
2015/03/02 职场文书
2015年计算机教学工作总结
2015/07/22 职场文书
2016年先进班集体事迹材料
2016/02/26 职场文书
2016年中学法制宣传日活动总结
2016/04/01 职场文书