一、os.system()
只返回对应状态码,且状态码只会有0(成功)、1、2。
此会将结果之间输出,所有在对返回值没有分析时可用
os.system(cmd)
二、os.popen()
返回脚本命令输出的内容
os.popen()可以实现一个“管道”,从这个命令获取的值可以继续被调用。而os.system不同,它只是调用,调用完后自身退出,执行成功直接返回个0
os.popen(cmd).read()
三、subprocess.Popen()
Popen类的构造函数,返回结果为subprocess.Popen对象,脚本命令的执行结果可以通过stdout.read()获取。
res = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) result = res.stdout.read() res.wait() res.stdout.close()
四、subprocess.getstatusoutput()
result = subprocess.getstatusoutput(cmd)
返回是一个元组,如果成功,返回(0, 'xxx');如果失败,返回(1, 'xxx')