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(' ') 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 == ' ': 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