python调用shell的方法比较

在Python程序中调用shell命令有4种方法的比较:

1、os.system(command)

  在一个子终端调用该命令,同步调用,返回的是执行完毕后的退出状态,无法保存返回的command命令的执行结果

2、os.popen(command,mode)

  output = os.popen(command,mode)

  获取结果:output.read(),但是无法获取程序执行的返回值

  说明:该方法是返回一个文件对象,以读或者写(由mode决定,mode默认是’r')

3、commands.getstatusoutput(command)

  (status, output) = commands.getstatusoutput('ls -l')

  该方法可以获取程序执行的返回值和command执行的结果

4、subprocess模块

  subprocess.call(["cmd", "arg1", "arg2"],shell=True)

  其中的call()完全替代了system(),而popen()被更为丰富的Popen类替代

  subprocess.Popen('ls', shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)

猜你喜欢

转载自jy-damon.iteye.com/blog/2355937