subprocess 模块
import subprocess # 专门用于python执行系统命令的
subproess 的三个最基本的方法:
call()
执行命令,返回状态码
subprocess.call(['ls','-a'],shell=False)
subprocess.call('ls -a',shell=True)
在带参数情况下,如果参数分开则shell需要设置为false,否则为true
check_call()
执行命令,如果执行状态码是0,则返回0,否则抛出异常
check_output()
执行命令,如果状态码是0,则返回执行结果,否则抛出异常
对于复杂命令 ,可以使用subprocess.popen()
example:
obj = subprocess.Popen("mkdir t3",shell=True,cwd=='/home/dev')
参数1 指定执行的命令
参数2 指定是否允许带参数一起执行还是命令和参数分开,
参数3 指定目录
obj = subprocess.Popen(['python'],stdin=subprocess,PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE,universal_newlines=True)
obj.stdin.write('print(1)
')
obj.stdin.write('print(2)')
obj.stdin.close()
cmd_out = obj.stdout.read()
obj.stdout.close()
cmd_error = obj.stderr.read()
obj.stderr.close()
print(cmd_out)
print(cmd_error)