os模块
也许在subprocess之前,你可能听说过os模块。如:
import os
cmdstr = "some cmd command"
os.system(cmdstr)- 1
- 2
- 3
这种方式可以很轻松的执行Windows上的命令,但是缺点是:
不受控,没有返回结果。对于简单的需求而言还行,但是对于需要获取返回结果的就不太适用了。
入门
相比较subprocess, 执行一条命令就方便多了。比如实现与os模块相同功能的话,可以使用如下代码:
import subprocess
cmdstr = "some cmd command"
subprocess.call(cmdstr)- 1
- 2
- 3
- 4
当你想执行带有命令行参数的命令的时候,也是比较方便的。可以使用一个列表盛放需要执行的命令。subprocess底层会默认将这个列表拼装成命令字符串。
import subprocess
cmdstr1 = 'ping'
cmdstr2 = 'www.douban.com'
subprocess.call([cmdstr1, cmdstr2])- 1
- 2
- 3
- 4
除此之外,还有
- subprocess.check_call()
subprocess.check_out_put
等函数。按需选取就行了。
本文对比了Python中os模块与subprocess模块用于执行外部命令的功能。os模块虽使用简便,但缺乏对命令执行结果的反馈;而subprocess模块则提供了更强大的控制能力,能够更好地处理复杂的命令执行需求。

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



