原文:[url]http://my.oschina.net/qihh/blog/74266[/url]
利用python的subprocess模块执行外部命令,并捕获stdout,stderr的输出:
利用python的subprocess模块执行外部命令,并捕获stdout,stderr的输出:
import subprocess
#print ’popen3:’
def external_cmd(cmd, msg_in=''):
try:
proc = subprocess.Popen(cmd,
shell=True,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
)
stdout_value, stderr_value = proc.communicate(msg_in)
return stdout_value, stderr_value
except ValueError as err:
#log("ValueError: %s" % err)
return None, None
except IOError as err:
#log("IOError: %s" % err)
return None, None
if __name__ == '__main__':
stdout_val, stderr_val = external_cmd('ls -l')
print 'Standard Output: %s' % stdout_val
print 'Standard Error: %s' % stderr_val