Python模块学习(2):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)

执行结果:

Python模块学习(2):subprocess模块_第1张图片

 

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

test.py内容如下:

import subprocess

 

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

print(ret)

执行结果:

Python模块学习(2):subprocess模块_第2张图片

 

 

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

Python模块学习(2):subprocess模块_第3张图片

 

结果:

Python模块学习(2):subprocess模块_第4张图片

 

 

例4:

Python模块学习(2):subprocess模块_第5张图片

 

运行:

Python模块学习(2):subprocess模块_第6张图片

 

 

 

二、subprocess.check_call()

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

 

 

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

Python模块学习(2):subprocess模块_第7张图片

 

运行:

Python模块学习(2):subprocess模块_第8张图片

 

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

Python模块学习(2):subprocess模块_第9张图片

 

运行:

Python模块学习(2):subprocess模块_第10张图片

 

 

三、subprocess.check_output()

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

 

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

Python模块学习(2):subprocess模块_第11张图片

 

结果:

 

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

Python模块学习(2):subprocess模块_第12张图片

 

运行:

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

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

 

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

Python模块学习(2):subprocess模块_第13张图片

 

Python模块学习(2):subprocess模块_第14张图片

 

 

 

 

 

 

 

 

 

参考:https://blog.csdn.net/vevenlcf/article/details/90552763

 

 

 

 

你可能感兴趣的:(11,Python/DL/ML)