subprocess.call(args, *, stdin= None, stdout = None, stderr = None, shell = False)
运行由args参数提供的命令,等待命令执行结束并返回返回码。
args参数由字符串形式提供且有多个命令参数时,需要提供shell=True
参数:
res = subprocess.call('ls')
print 'res:', res
res = subprocess.call('ls -l', shell = True)
print 'res:', res
subprocess.check_call(args, *, stdin = None, stdout = None, stderr = None, shell = False)
与call方法类似,不同在于如果命令行执行成功,check_call返回返回码0,否则抛出subprocess.CalledProcessError
异常。 subprocess.CalledProcessError
异常包括returncode、cmd、output等属性,其中returncode是子进程的退出码,cmd是子进程的执行命令,output为None。
import subprocess
try:
res = subprocess.check_call(['ls', '?'])
print 'res:', res
except subprocess.CalledProcessError as exc:
print 'returncode:', exc.returncode
print 'cmd:', exc.cmd
print 'output:', exc.output
输出: