前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >subprocess模块

subprocess模块

作者头像
用户1679793
发布2018-04-28 09:33:17
7350
发布2018-04-28 09:33:17
举报

从Python 2.4开始,Python引入subprocess模块来管理子进程,以取代一些旧模块的方法:如 os.system、os.spawn*、os.popen*、popen2.*、commands.*不但可以调用外部的命令作为子进程,而且可以连接到子进程的input/output/error管道,获取相关的返回信息。

常用subprocess方法示例:

#执行命令,返回执行状态,0或非0

>>> res = subprocess.call(["df","-h"]) Filesystem      Size  Used Avail Use% Mounted on /dev/sda1        48G   30G   18G  64% / tmpfs           1.9G     0  1.9G   0% /dev/shm /dev/sda3        91G   29G   58G  33% /data /dev/sdb        1.8T  696G  1.1T  40% /wdc >>> res 0 #接收字符串命令,返回元组形式,第一个元素是执行状态,第二个是执行结果

>>> subprocess.getstatusoutput('ls /home/zww/day5') (0, 'decorator2.py\ndecorator3.py\ndecorator4.py\ndecorator.py\nflag\nget_log\nuser_table') #接收字符串格式命令,并返回结果

>>> subprocess.getoutput('ls /home/zww/day5') 'decorator2.py\ndecorator3.py\ndecorator4.py\ndecorator.py\nflag\nget_log\nuser_table'

#执行命令,并返回结果,注意是返回结果,不是打印,下例结果返回给res

>>> res = subprocess.check_output(['df','-h']) >>> res b'Filesystem      Size  Used Avail Use% Mounted on\n/dev/sda1        48G   30G   18G  64% /\ntmpfs           1.9G     0  1.9G   0% /dev/shm\n/dev/sda3        91G   29G   58G  33% /data\n/dev/sdb        1.8T  696G  1.1T  40% /wdc\n'

#上面那些方法,底层都是封装的subprocess.Popen poll() Check if child process has terminated. Returns returncode

wait() Wait for child process to terminate. Returns returncode attribute.

terminate() 杀掉所启动进程 communicate() 等待任务结束

stdin 标准输入 stdout 标准输出 stderr 标准错误

pid The process ID of the child process.

#例子 >>> p = subprocess.Popen("df -h",stdin=subprocess.PIPE,stdout=subprocess.PIPE,shell=True) >>> p.stdout.read() b'Filesystem      Size  Used Avail Use% Mounted on\n/dev/sda1        48G   30G   18G  64% /\ntmpfs           1.9G     0  1.9G   0% /dev/shm\n/dev/sda3        91G   29G   58G  33% /data\n/dev/sdb        1.8T  696G  1.1T  40% /wdc\n' >>>

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-09-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档