可以执行shell命令的相关模块和函数有:os.system
os.spawn*
os.popen* --废弃
popen2.* --废弃
commands.* --废弃,3.x中被移除
上面这些命令,可以使用subprocess完美的实现,而且具有丰富的功能:
call: python3.5以下才有, python3.5及以上变成run方法
执行命令,返回状态码
>>> a = subprocess.call('whoami')
huangxm-pc\huangxm>>> print(a)
0
执行一个带参数的命令
>>> subprocess.call('ls -l')
Traceback (most recent call last):
File"", line 1, in
报错了,对于这种可以加上shell=True, 表示完全当成shell命令执行
>>> subprocess.call('ls -l', shell=True)
total48drwxr-xr-x 5 huanghao huanghao 4096 Mar 12 18:42day7
drwxrwxrwx2 huanghao huanghao 4096 Oct 19 22:42 Desktop
check_call
执行命令,如果执行状态码是 0 ,则返回0,否则抛异
>>> subpro