| 一、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内容如下:
执行结果:
例2:执行不成功返回非零状态码 test.py内容如下:
执行结果:
例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
|
本文详细探讨了Python的subprocess模块,它是用于生成新的进程、连接到它们的输入/输出/错误管道,并获取它们的返回码。内容涵盖了模块的基本用法、参数详解以及常见使用场景,帮助读者全面掌握进程管理技巧。
















181

被折叠的 条评论
为什么被折叠?



