首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

请问PYTHON执行操作系统命令时的一个有关问题

2012-04-07 
请教PYTHON执行操作系统命令时的一个问题大家好,我现在面临的问题是需要在python中执行一个shell命令,这个

请教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模块

热点排行