1 #!/usr/bin/env python
2
3 from subprocess import PIPE,Popen
4
5 def getDmi():
6 p = Popen(['dmidecode'],stdout=PIPE)
7 data = p.stdout.read()
8 return data
9
10 def parseDmi(data):
11 lines = []
12 line_in = False
13 dmi_list = [i for i in data.split('\n') if i]
14 for line in dmi_list:
15 if line.startswith('System Information'):
16 line_in = True
17 continue
18 if line_in:
19 if not line[0].strip():
20 lines.append(line)
21 else:
22 break
23 return lines
24 def dmiDict():
25 dmi_dict = {}
26 data = getDmi()
27 lines = parseDmi(data)
28 dic = dict([i.strip().split(': ') for i in lines])
29 dmi_dict['vendor']=dic['Manufacturer']
30 dmi_dict['product']=dic['Product Name']
31 dmi_dict['sn']=dic['Serial Number']
32 return dmi_dict
33 if __name__ == '__main__':
34 print dmiDict()
1 #!usr/bin/env python
2
3 from subprocess import PIPE,Popen
4
5 p = Popen(['dmidecode'],stdout=PIPE)
6 data = p.stdout
7 lines = []
8 dmi = {}
9 a = True
10 while a:
11 line = data.readline()
12 if line.startswith('System Information'):
13 while True:
14 line = data.readline()
15 if line == '\n':
16 a = False
17 break
18 else:
19 lines.append(line)
20 dmi_dict = dict([i.strip().split(':') for i in lines])
21 print dmi_dict
22 for k,v in dmi_dict.items():
23 dmi[k] = v.strip()
24 print dmi