• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python subprocess模块学习总结

Python subprocess模块学习总结

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了Python subprocess模块学习总结等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

一、subprocess以及常用的封装函数
运行python的时候,我们都是在创建并运行一个进程。像Linux进程那样,一个进程可以fork一个子进程,并让这个子进程exec另外一个程序。在Python中,我们通过标准库中的subprocess包来fork一个子进程,并运行一个外部的程序。
subprocess包中定义有数个创建子进程的函数,这些函数分别以不同的方式创建子进程,所以我们可以根据需要来从中选取一个使用。另外subprocess还提供了一些管理标准流(standard stream)和管道(pipe)的工具,从而在进程间使用文本通信。

subprocess.call()
父进程等待子进程完成
返回退出信息(returncode,相当于Linux exit code)

subprocess.check_call()
父进程等待子进程完成
返回0
检查退出信息,如果returncode不为0,则举出错误subprocess.CalledProcessError,该对象包含有returncode属性,可用try…except…来检查

subprocess.check_output()
父进程等待子进程完成
返回子进程向标准输出的输出结果
检查退出信息,如果returncode不为0,则举出错误subprocess.CalledProcessError,该对象包含有returncode属性和output属性,output属性为标准输出的输出结果,可用try…except…来检查。

这三个函数的使用方法相类似,下面来以subprocess.call()举例说明:

shell默认为False,在Linux下,shell=False时, Popen调用os.execvp()执行args指定的程序;shell=True时,如果args是字符串,Popen直接调用系统的Shell来执行args指定的程序,如果args是一个序列,则args的第一项是定义程序命令字符串,其它项是调用系统Shell时的附加参数。

上面例子也可以写成如下:

subprocess.Popen()

与上面的封装不同,Popen对象创建后,主程序不会自动等待子进程完成。我们必须调用对象的wait()方法,父进程才会等待 (也就是阻塞block),举例:

对比等待的情况:
</div>

您可能想查找下面的文章:

相关文章

  • 使用Python中的cookielib模拟登录网站
  • Phantomjs抓取渲染JS后的网页(Python代码)
  • python 捕获shell脚本的输出结果实例
  • Python Socket编程入门教程
  • python中的reduce内建函数使用方法指南
  • 基于python编写的微博应用
  • Python正则表达式教程之一:基础篇
  • python 回调函数和回调方法的实现分析
  • 基于Python实现一个简单的银行转账操作
  • Python3读取zip文件信息的方法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python实现简单的多任务mysql转xml的方法
    • python使用urllib2模块获取gravatar头像实例
    • python使用Tkinter显示网络图片的方法
    • python抓取网页时字符集转换问题处理方案分享
    • python进程类subprocess的一些操作方法例子
    • 打印出python 当前全局变量和入口参数的所有属性
    • Python中多线程的创建及基本调用方法
    • 用python写一个windows下的定时关机脚本(推荐)
    • Python中分数的相关使用教程
    • Python3使用requests包抓取并保存网页源码的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有