想通了,通过以下我们可以得到我需要的所有数据:
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