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
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。