请教PYTHON执行操作系统命令时的一个问题
大家好,我现在面临的问题是需要在python中执行一个shell命令,这个shell会有一些输出,现在有三种选择,getstatusoutput,popen,system。
使用前两种方法的时候SHELL打印的那些日志信息输出不会在屏幕上显示出来,不知道如何能显示出来?
使用第三种,也就是system,那些日志是打印在屏幕上了,可是不知道如何捕获到程序的返回码?
[解决办法]
return1=os.system('yourscript.sh')
retcode=return1 >> 8
http://blog.tsul.net/2008/04/ossystem-and-its-return-value.html
[解决办法]
使用system时会输出log和程序的状态码
>>> os.system('echo %time%')
12:42:35.43
0
零就是状态码表示成功,状态码默认会return的
>>> aa = os.system('echo %time%')
12:42:55.70
>>> print aa
0
[解决办法]
从函数介绍中可以看出,getstatusoutput更好用,但其在windows上不能使用,至少我没有测试成功。其返回值是一个tupple,一个是命令返回值,另一个是屏幕的输出,其中包含stdout和stderr。
[解决办法]
试试subprocess模块