實體機記憶體檢查,
#!/usr/bin/env python
# -*-coding:UTF-8 -*-
import os
memdict = dict()
memditail = dict()
#os.popen()
os.system(' dmidecode -t memory >./mem.txt ')
memstr=os.popen('cat ./mem.txt')
mem_count=os.popen("cat ./mem.txt |grep 'Number Of Devices' |awk -F':' '{print $2}'").read()
#mem_count = memstr.read().count("Memory Device")
#mem_count = os.popen(" dmidecode -t 17").read()
Device_info = memstr.read().split("Memory Device")
for i in range(0, len(Device_info) ):
# print("Memory Device"+str(i),Device_info[i])
# print(i, Device_info[i].strip())
for eachline in Device_info[i].split("\n"):
count = eachline.count(":")
if count == 1:
memditail[eachline.split(':')[0].strip()] = eachline.split(':')[1]
memdict[i] = dict(memditail)
else:
pass
#print(memdict)
# 總的記憶體資訊
Mem_max_capacity = memdict[0]["Maximum Capacity"]
Devices_count = memdict[0]["Number Of Devices"]
print("1、統計每個插槽記憶體資訊:")
Memorysum = 0
for i in range(1, int(mem_count) + 1):
Device_name = "Memory Device" + str(memdict[i]["Locator"])
Device_slot = memdict[i]["Locator"]
Device_width = memdict[i]["Data Width"]
Device_size = memdict[i]["Size"]
Device_factor = memdict[i]["Form Factor"]
Device_type = memdict[i]["Type"]
Device_speed = memdict[i]["Speed"]
Device_sn = memdict[i]["Serial Number"]
Device_clock_speed = memdict[i]["Configured Clock Speed"]
Device_min_voltage = memdict[i]["Minimum Voltage"]
Device_max_voltage = memdict[i]["Maximum Voltage"]
#Memorysum += int(Device_size.split("MB")[0])
print("裝置名稱%s:".center(80, "-") % Device_name)
print("\n記憶體插槽:%s 記憶體大小:%s 記憶體類型:%s 記憶體SN編号:%s 主頻:%s\n" % (
Device_slot, Device_size, Device_type, Device_sn, Device_clock_speed))
#Memorysum = Memorysum / 1024
#print("2、資訊彙總:\n此主機可安裝記憶體的最大容量為:%s \n主機安裝的記憶體數量為:%s根 目前記憶體容量為:%s \n" % (Mem_max_capacity, Devices_count, Memorysum))