python获取命令行输出结果

发布时间:2019-08-26 07:17:13编辑:auto阅读(1749)

    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:\Program\Python>del.py  
    MAC=00-1B-77-CD-62-2B, IP=192.168.1.110  
    
    E:\Program\Python>  

    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  

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

关键字