python获取命令行输出结果

python获取命令行输出结果,并对结果进行过滤找到自己需要的!

这里以获取本机MAC地址和IP地址为例!

# coding: GB2312  
import os, re  

# execute command, and return the output  
def execCmd(cmd):  
    r = os.popen(cmd)  
    text = r.read()  
    r.close()  
    return text  

# write "data" to file-filename  
def writeFile(filename, data):  
    f = open(filename, "w")  
    f.write(data)  
    f.close()  

# 获取计算机MAC地址和IP地址  
if __name__ == __main__:  
    cmd = "ipconfig /all"  
    result = execCmd(cmd)  
    pat1 = "Physical Address[. ]+: ([w-]+)"  
    pat2 = "IP Address[. ]+: ([.d]+)"  
    MAC = re.findall(pat1, result)[0]       # 找到MAC  
    IP = re.findall(pat2, result)[0]        # 找到IP  
    print("MAC=%s, IP=%s" %(MAC, IP))

运行结果:

E:ProgramPython>del.py  
MAC=00-1B-77-CD-62-2B, IP=192.168.1.110  

E:ProgramPython>

python执行系统命令后获取返回值的几种方式

第一种情况

os.system(ps aux)

执行系统命令,没有返回值 第二种情况

result = os.popen(ps aux)  
      res = result.read()  
      for line in res.splitlines():  
              print line

执行系统命令,可以获取执行系统命令的结果

p = subprocess.Popen(ps aux,shell=True,stdout=subprocess.PIPE)  
   out,err = p.communicate()  
   for line in out.splitlines():  
       print line

同上,执行系统命令,可以获取执行系统命令的结果 第三种情况

output = commands.getstatusoutput(ps aux)  
print  output

执行系统命令,并获取当前函数的返回值

经验分享 程序员 微信小程序 职场和发展