Python模块学习(2):subprocess模块

本文详细探讨了Python的subprocess模块,它是用于生成新的进程、连接到它们的输入/输出/错误管道,并获取它们的返回码。内容涵盖了模块的基本用法、参数详解以及常见使用场景,帮助读者全面掌握进程管理技巧。

一、subprocess.call()                        //成功0,失败非0                                                               点击此处返回总目录

二、subprocess.check_call()            //成功0,失败报错

三、subprocess.check_output()       //成功输出内容,失败报错

 

在读别人的代码的时候,看别人用到了这个模块,因此记一下。只记录了自己用到的函数,并没有对整个模块的使用进行介绍。

 

 

 

一、subprocess.call()

执行命令,并返回状态码。状态码0代表命令执行成功,其他的都表示命令执行不成功。

 

ret = subprocess.call("ls -l", shell = True)       //执行命令ls -l,返回状态码。【例1】【例2】

                                                                       //shell=True表示支持以字符串的形式传入。若不写shell=Ture,则默认为False,即

                                                                         不支持字符串形式。【例3】

ret = subprocess.call(['ls', '-l'])                        //不写shell=True,则默认为False,只能以列表的形式输入。【例4】

 

 

 

例1:执行成功,返回状态码0

test.py内容如下:

import subprocess

 

ret = subprocess.call("ls -l", shell=True)

print(ret)

执行结果:

 

例2:执行不成功返回非零状态码

test.py内容如下:

import subprocess

 

ret = subprocess.call("abcd", shell=True)

print(ret)

执行结果:

 

 

例3:不写shell=Ture,则默认为false,就不能以字符串的形式输入。

 

结果:

 

 

例4:

 

运行:

 

 

 

二、subprocess.check_call()

用法与subprocess.call()类似,区别是,当返回值不为0时,直接抛出异常。【例1】【例2】

 

 

例1:当执行成功时,返回值为0.

 

运行:

 

例2:当运行失败时,不是返回非0值,而是抛出异常。

 

运行:

 

 

三、subprocess.check_output()

用法与上面两个方法类似,区别是,如果执行成功,直接返回输出结果,如果执行不成功,直接抛出异常。需要说明的是,该方法在python3.x中才有。【例1】【例2】

 

例1:如果执行成功,返回的是输出结果,不是0。

 

结果:

 

例2:如果执行成功,返回的是输出结果,不是0。

 

运行:

运行touch bb.txt命令,并没有什么输出,所以结果中为空。

ll命令查看,确实多了bb.txt文件。

 

例3:执行不成功则报错。

 

 

 

 

 

 

 

 

 

 

参考:https://blog.youkuaiyun.com/vevenlcf/article/details/90552763

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值