commands模块只使用与linux的shell模式下

[root@geenk03 opt]# cat test.py
#!/usr/bin/env python
import commands
cmd = 'ls /home/'
a = commands.getoutput(cmd)
print (type(a))
print (a)

在上面我们在执行shell命令的时候,我们的shell命令可能执行报错,或者异常退出,我们就要有一个条件来判断shell最终执行的结果是什么,commands.getstatusoutput(cmd)的返回结果有两个值

[root@geenk03 opt]# python test.py
<type 'str'>
aa.txt
admin
apache-maven-3.3.9-bin.tar.gz
DATA
easyexpress_controller.log
easypush_error.log
elk
[root@geenk03 opt]# cat test1.py
#!/usr/bin/env python
#coding:utf-8
import commands

cmd = 'ps -aux |grep nginx'
# commands.getstatusoutput(cmd) 返回的是一个tuple
t = commands.getstatusoutput(cmd)
#result返回的是str,status 返回的是int
#result就是命令的结果
#如果键入的命令正确,则status为0,否则不为0
status,result = commands.getstatusoutput(cmd)
print (type(t))
print (type(result))
print(result)
print(type(status))
print (status)
[root@geenk03 opt]# python test1.py
<type 'tuple'>
<type 'str'>
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root     24724  0.0  0.0 106108  1136 pts/0    S+   15:20   0:00 sh -c { ps -aux |grep nginx; } 2>&1
root     24726  0.0  0.0 103336   848 pts/0    S+   15:20   0:00 grep nginx
<type 'int'>
0

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐