zoukankan      html  css  js  c++  java
  • dmidecode.py (python3_dmidecode)

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    import subprocess
    import re
    dict_sn_productName = {}
    def getDmidecode():
        #
        #variable 'out' is subprocess output info
        top_info = subprocess.Popen(["dmidecode", "-t", "system"], stdout=subprocess.PIPE)
        out, err = top_info.communicate()
        #output info get from console has many unicode escape character ,such as x1b(Bx1b[mx1b[39;49mx1b[K
    x1b(Bx1b[m
        #use decode('unicode-escape') to process
        out_info = out.decode('unicode-escape')
        #print(out_info)
        lines = []
        lines = out_info.split('
    ')
        #return out_info
        # get serial number
        if 'Serial Number' in out_info:
            serialNumberSearch = re.compile('Serial Number: (.+?)
    ')
            serialNumber = serialNumberSearch.findall(out_info)[0]
            dict_sn_productName['serialNumber'] = serialNumber
        # get Product Name
        if 'Product Name' in out_info:
            productNameSearch = re.compile('Product Name: (.+?)
    ')
            productName = productNameSearch.findall(out_info)[0]
            dict_sn_productName['productName'] = productName
    getDmidecode()
    print (dict_sn_productName)
    output:
    [root@mgt MgmtStatus]#./dmidecode.py
    {'productName':'IBM System x3650 M4: -[7915R7Q]-','serialNumber':'06BAFCD'}
    [root@mgt MgmtStatus]#
     
     





  • 相关阅读:
    C# bool? 逻辑运算
    C# yield return 用法与解析
    枚举器和迭代器
    C# 事件
    C# 索引器
    C# 实现单例模式的几种方法
    协变 和 逆变
    C# 结构体的特点
    装箱 和 拆箱
    继承之---对象用父类声明,用子类实例化
  • 原文地址:https://www.cnblogs.com/topshooter/p/python3_dmidecode.html
Copyright © 2011-2022 走看看