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 open()文件处理使用介绍
Nov 30 Python
python中requests使用代理proxies方法介绍
Oct 25 Python
解读! Python在人工智能中的作用
Nov 14 Python
python 处理telnet返回的More,以及get想要的那个参数方法
Feb 14 Python
python 实现屏幕录制示例
Dec 23 Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
Jan 14 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
Jan 25 Python
python 解决print数组/矩阵无法完整输出的问题
Feb 19 Python
pytorch中的weight-initilzation用法
Jun 24 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
Jun 27 Python
Python获取浏览器窗口句柄过程解析
Jul 25 Python
Python网络编程之ZeroMQ知识总结
Apr 25 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中其实也可以用方法链
2011/11/10 PHP
PHP原生模板引擎 最简单的模板引擎
2012/04/25 PHP
PHP 年龄计算函数(精确到天)
2012/06/07 PHP
PHP使用逆波兰式计算工资的方法
2015/07/29 PHP
PHP编写RESTful接口的方法
2016/02/21 PHP
js点击出现悬浮窗效果不使用JQuery插件
2014/01/20 Javascript
ie8模式下click无反应点击option无反应的解决方法
2014/10/11 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
2016/01/19 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
2016/10/24 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
vue.js $refs和$emit 父子组件交互的方法
2017/12/20 Javascript
JavaScript实现的超简单计算器功能示例
2017/12/23 Javascript
在vue组件中使用axios的方法
2018/03/16 Javascript
Fetch超时设置与终止请求详解
2019/05/18 Javascript
详解js中let与var声明变量的区别
2020/04/05 Javascript
layui实现三级联动效果
2019/07/26 Javascript
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
2019/10/16 jQuery
Vue 自适应高度表格的实现方法
2020/05/13 Javascript
[04:19]DOTA2亚洲邀请赛 现场花絮
2015/03/11 DOTA
[58:58]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第二场
2018/04/05 DOTA
Linux下为不同版本python安装第三方库
2016/08/31 Python
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
python将字典内容存入mysql实例代码
2018/01/18 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
2019/12/18 Python
python上传时包含boundary时的解决方法
2020/04/08 Python
python 实现客户端与服务端的通信
2020/12/23 Python
html5定位获取当前位置并在百度地图上显示
2014/08/22 HTML / CSS
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
N.Peal官网:来自伦敦的高档羊绒品牌
2018/10/29 全球购物
联谊活动策划书
2014/01/26 职场文书
5s标语大全
2014/06/23 职场文书
2014年小学重阳节活动策划方案
2014/09/16 职场文书
初婚未育证明样本
2014/10/24 职场文书
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
2021/04/16 PHP
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
2021/05/12 Python
CSS中实现动画效果-附案例
2022/02/28 HTML / CSS