python 常用代码学习笔记之commands模块

通常我们调用os.system(cmd) 只能获得命令是否能执行成功。即结果为0或者非0标识是否执行成功。
而有时我们希望即获取到是否成功,同时也获取命令的执行结果。
这时就可以使用commands了,通过它可以同时获取命令的执行结果输出和结果。
实例如下:
   1: import commands
   2:  
   3: ret, output = commands.getstatusoutput('ls')
   4: print ret 
   5: print output  
 
这样ret就反馈是否执行成功,比如为0(成功) 或者非0(不成功)
output 用来获取ls命令的执行结果。
 
注:查看python api文档:
commands. getstatusoutput ( cmd )

Execute the string cmd in a shell with os.popen() and return a 2-tuple (status, output)cmd is actually run as { cmd ; } 2>&1, so that the returned output will contain output or error messages. A trailing newline is stripped from the output. The exit status for the command can be interpreted according to the rules for the C function wait().

注意该命令会将错误输出流重定向到标准输出流中,因此output也会保存错误输出。


如下是一个获取机器eth0 网卡ip的使用示例。

cmd='''ifconfig eth0|grep "inet "|awk '{print $2}'|awk -F":" '{print $2}' '''
ret,ip = commands.getstatusoutput(cmd)
#print ip, ret
if ret != 0 :
print "get ip failed";
sys.exit(2)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值