温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

dmidecode收集系统信息

发布时间:2020-07-20 20:45:37 来源:网络 阅读:463 作者:1350368559 栏目:开发技术

dmidecode收集系统信息


[root@133 systeminformation]# vim dmidecode_1.py #!/usr/bin/env python                                                                                                                                                                                                                                                                                                                                                   from subprocess import Popen,PIPE                                                                                                                                                   p = Popen(['dmidecode'],stdout=PIPE)                                                                                                                                                data=p.stdout                                                                                                                                                                       line_s = []   #定义一个空列表                                                                                                                                                                   dmi = {}     #定义一个空字典                                                                                                                                                                                                                                                                                                                                                           a = True              #设置标志位 a = True                                                                                                                                                              while a:                                                                                                                                                                                line = data.readline()                                                                                                                                                              if line.startswith('System Information'): #判断以System Information开头的段,                                                                                                                                       while True:                                                                                                                                                                             line = data.readline()                                                                                                                                                              if line == '\n':           #取该段落,直到有空行                                                                                                                                                             a = False                                                                                                                                                                           break                                                                                                                                                                           else:                                                                                                                                                                                   line_s.append(line)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         dmi_dic =  dict([i.strip().split(':') for i in line_s])  #把空格和换行符删除                                                                                                                            dmi['Manufacturer'] = dmi_dic['Manufacturer'].strip()  #打印key= Manufacturer的键值对                                                                                                                             print dmi                                                                                                                                                                           print {'\n'*20}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           for k,v in dmi_dic.items():   #打印以System Information开头的段,以key、value打印出来                                                                                                                                                          dmi[k] = v.strip()                                                                                                                                                              print dmi    [root@133 systeminformation]# python dmidecode_1.py  {'Manufacturer': 'Dell Inc.'} set(['\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n']) {'SKU Number': 'Not Specified', 'UUID': '4C4C4544-0048-4210-8044-B4C04F543258', 'Family': 'Not Specified', 'Serial Number': '4HBDT2X', 'Version': 'Not Specified', 'Product Name':  'PowerEdge R710', 'Wake-up Type': 'Power Switch', 'Manufacturer': 'Dell Inc.'}


注意:在Python里,以下这些对象相当于布尔值的False
空列表([] )
空元组(() )
空字典({} )
空字符串('' )
零值(0 )
特殊对象None
对象False

[root@133 systeminformation]# cat dmidecode_2.py  #!/usr/bin/env python from subprocess import Popen,PIPE def getDmi():     p = Popen(['dmidecode'], stdout = PIPE)     data = p.stdout.read()     return data def parseDmi(data):     lines = []     line_in = False     dmi_list = [i for i in data.split('\n') if i]     for line in dmi_list:        if line.startswith('System Information'):            line_in = True            continue        if line_in:            if not line[0].strip():                lines.append(line)            else:                break     return lines def dmiDic():     dmi_dic = {}     data = getDmi()     lines = parseDmi(data)     dic = dict ([i.strip().split(':')for i in lines])     dmi_dic['vendor'] = dic['Manufacturer']     return dmi_dic if __name__ == '__main__':     print dmiDic()      [root@133 systeminformation]# python dmidecode_2.py  {'vendor': ' Dell Inc.'} In [1]: a=''  #a的值是null,not a = True In [2]: not a Out[2]: True In [3]: a=' '#a的值是空格或者\t, a!=null, not a = False In [4]: not a Out[4]: False In [5]: a='\t' In [6]: a Out[6]: '\t' In [7]: not a Out[7]: False In [8]: a='\t' In [9]: a Out[9]: '\t' In [10]: a.strip() Out[10]: '' In [11]: not a.strip() Out[11]: True In [12]: a='   ' In [13]: not a Out[13]: False In [14]: a.strip() Out[14]: '' In [15]: not a.strip() Out[15]: True


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI