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爬虫天气预报实例详解(小白入门)
Jan 24 Python
Python实现基于PIL和tesseract的验证码识别功能示例
Jul 11 Python
基于python代码实现简易滤除数字的方法
Jul 17 Python
python使用PIL实现多张图片垂直合并
Jan 15 Python
Pandas之ReIndex重新索引的实现
Jun 25 Python
PyCharm使用之配置SSH Interpreter的方法步骤
Dec 26 Python
Scrapy框架基本命令与settings.py设置
Feb 06 Python
Python BeautifulReport可视化报告代码实例
Apr 13 Python
python中有函数重载吗
May 28 Python
8种常用的Python工具
Aug 05 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
Dec 07 Python
Python实现智慧校园自动评教全新版
Jun 18 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常用技巧汇总
2016/03/04 PHP
javascript之更有效率的字符串替换
2008/08/02 Javascript
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
javascript 正则表达式相关应介绍
2012/11/27 Javascript
javascript if条件判断方法小结
2014/05/17 Javascript
javascript 对象数组根据对象object key的值排序
2015/03/09 Javascript
JavaScript实现简单图片翻转的方法
2015/04/17 Javascript
理解JavaScript事件对象
2016/01/25 Javascript
jquery 键盘事件的使用方法详解
2017/09/13 jQuery
Vuejs 2.0 子组件访问/调用父组件的方法(示例代码)
2018/02/08 Javascript
详解基于Node.js的HTTP/2 Server实践
2018/05/31 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
2018/07/05 Javascript
js中值引用和地址引用实例分析
2019/06/21 Javascript
Vue Router 实现动态路由和常见问题及解决方法
2020/03/06 Javascript
[01:06:39]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第三局
2016/03/02 DOTA
pyqt和pyside开发图形化界面
2014/01/22 Python
python 中split 和 strip的实例详解
2017/07/12 Python
python+pyqt5实现24点小游戏
2019/01/24 Python
解析python的局部变量和全局变量
2019/08/15 Python
pycharm快捷键汇总
2020/02/14 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
2020/06/02 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
2020/06/23 Python
Python中免验证跳转到内容页的实例代码
2020/10/23 Python
深入浅析css3 中display box使用方法
2015/11/25 HTML / CSS
意大利领先的奢侈品在线时装零售商:MCLABELS
2020/10/13 全球购物
在Java开发中如何选择使用哪种集合类
2016/08/09 面试题
英文翻译的自我评价语句
2013/10/04 职场文书
竞争性谈判邀请书
2014/02/06 职场文书
项目合作意向书范本
2014/04/01 职场文书
交通安全责任书范本
2014/07/24 职场文书
北京离婚协议书范文2014
2014/09/29 职场文书
市委常委班子党的群众路线教育实践活动整改措施
2014/10/02 职场文书
向女朋友道歉的话
2015/01/20 职场文书
胡雪岩故居导游词
2015/02/06 职场文书
独生子女证明范本
2015/06/19 职场文书
雄兵连:第三季先行图公开,天使恶魔联合,银河之力的新力量
2021/06/11 国漫