python 获得shell命令的返回值

如果只是简单地执行shell命令,可以这样:

import os

os.system('ls')
 

得到shell的输出(不管标准输出或是错误输出)

import commands

result= commands.getstatusoutput(shellcommand)
output= result[1]

但是无法输入信息到shell,subprocess还是要更好用一些,可以和shell交互,因为重定向了stdin, stdout, stderr

import subprocess

p = subprocess.Popen(['cmd', 'arg'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
output = p.communicate('foo')[0] #传递给shell的字符串
print output

猜你喜欢

转载自songpengfei.iteye.com/blog/1701617