想通了,通過以下我們可以得到我需要的所有數據:
import dmidecode
from pprint import pprint
def getBIOS():
for v in dmidecode.bios().values():
if type(v) == dict and v['dmi_type'] == 0:
BIOSdict["Name"] = str((v['data']['Vendor']))
BIOSdict["BuildNumber"] = str((v['data']['Version']))
BIOSdict["SoftwareElementID"] = str((v['data']['BIOS Revision'])
)
我們迭代dmidecode.bios().values()
找到數據的各個領域。通過引用下面的表格我們可以看到使用哪個函數。這也位於這個link。
然後我們檢查'v'
的類型,以確保它是一個dictionary
(這是我用我的情況是什麼)我們檢查'dmi_type
'是什麼,我們正在尋找正確的代碼。
例如:
Type Information
----------------------------------------
0 BIOS
1 System
2 Base Board
3 Chassis
4 Processor
5 Memory Controller
6 Memory Module
7 Cache
8 Port Connector
9 System Slots
10 On Board Devices
11 OEM Strings
12 System Configuration Options
13 BIOS Language
14 Group Associations
15 System Event Log
16 Physical Memory Array
17 Memory Device
18 32-bit Memory Error
19 Memory Array Mapped Address
20 Memory Device Mapped Address
21 Built-in Pointing Device
22 Portable Battery
23 System Reset
24 Hardware Security
25 System Power Controls
26 Voltage Probe
27 Cooling Device
28 Temperature Probe
29 Electrical Current Probe
30 Out-of-band Remote Access
31 Boot Integrity Services
32 System Boot
33 64-bit Memory Error
34 Management Device
35 Management Device Component
36 Management Device Threshold Data
37 Memory Channel
38 IPMI Device
39 Power Supply
Keyword Types
------------------------------
bios 0, 13
system 1, 12, 15, 23, 32
baseboard 2, 10
chassis 3
processor 4
memory 5, 6, 16, 17
cache 7
connector 8
slot 9
如果我們想獲得的BIOS信息,我們便引用v['dmi_type'] == 0
這將返回一個字典。然後,我們可以創建自己的字典(在我的情況BIOSdict = []
),並添加鍵和值像這樣:
BIOSdict["Name"] = str((v['data']['Vendor']))
如果你已經有了可以公開這些在Python庫,沒錯! – Makoto