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 相关文章推荐
ptyhon实现sitemap生成示例
Mar 30 Python
Python3 操作符重载方法示例
Nov 23 Python
Jupyter中直接显示Matplotlib的图形方法
May 24 Python
对python sklearn one-hot编码详解
Jul 10 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
Mar 27 Python
Python使用itchat 功能分析微信好友性别和位置
Aug 05 Python
Python 从subprocess运行的子进程中实时获取输出的例子
Aug 14 Python
Python + Flask 实现简单的验证码系统
Oct 01 Python
如何卸载python插件
Jul 08 Python
python中的django是做什么的
Jul 31 Python
Python爬虫之Selenium设置元素等待的方法
Dec 04 Python
python opencv实现图像配准与比较
Feb 09 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 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
2012/12/07 PHP
PHP中的数组处理函数实例总结
2016/01/09 PHP
JavaScript 学习初步 入门教程
2010/03/25 Javascript
jQuery获取节点和子节点文本的方法
2014/07/22 Javascript
多个$(document).ready()的执行顺序实例分析
2014/07/26 Javascript
jQuery+Ajax实现无刷新操作
2016/01/04 Javascript
基于jquery实现的仿优酷图片轮播特效代码
2016/01/13 Javascript
angular select 默认值设置方法
2017/06/23 Javascript
JS使用canvas中的measureText方法测量字体宽度示例
2019/02/02 Javascript
element ui分页多选,翻页记忆的实例
2019/09/03 Javascript
对layui中table组件工具栏的使用详解
2019/09/19 Javascript
Python编程中运用闭包时所需要注意的一些地方
2015/05/02 Python
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
Python使用BeautifulSoup库解析HTML基本使用教程
2016/03/31 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
2016/08/28 Python
Python简单获取二维数组行列数的方法示例
2018/12/21 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
2019/06/19 Python
numpy数组广播的机制
2019/07/12 Python
如何利用Python模拟GitHub登录详解
2019/07/15 Python
在pytorch中查看可训练参数的例子
2019/08/18 Python
django实现模型字段动态choice的操作
2020/04/01 Python
全球虚拟主机商:HostGator
2017/02/06 全球购物
美国首屈一指的礼品篮供应商:GiftTree
2018/01/06 全球购物
EMPHASIS艾斐诗官网:周生生旗下原创精品珠宝品牌
2020/12/17 全球购物
主键(Primary Key)约束和唯一性(UNIQUE)约束的区别
2013/05/29 面试题
升职自荐信范文
2013/10/05 职场文书
董事长岗位职责
2013/11/30 职场文书
应届生如何写自荐信
2014/01/05 职场文书
2015年文员个人工作总结
2015/04/09 职场文书
劳动仲裁撤诉申请书
2015/05/18 职场文书
汽车修理厂管理制度
2015/08/05 职场文书
实习报告范文
2019/07/30 职场文书
详解Redis基本命令与使用场景
2021/06/01 Redis
MyBatis-Plus 批量插入数据的操作方法
2021/09/25 Java/Android
python自动获取微信公众号最新文章的实现代码
2022/07/15 Python
apache虚拟主机配置的三种方式(小结)
2022/07/23 Servers