Python Linux的dmidecode,如何通过parsing获取硬件信息?

我正在使用Fedora 17 64位,安装了dmidecode和python-dmidecode ,在我search关于如何使用python-dmidecode的文档,我还没有find任何东西。 我在浏览源代码时发现了一个例子,但没有其他的东西 任何熟悉这个模块,以及如何在Python中访问它? 您可以引用我的任何文档将有所帮助。

我试图在Fedora 17中获得硬件规格:

在C#中使用pipe理命名空间,我能够获得以下所有: 是否有可能通过Python获得相同的Linux?

BIOS - Name Motherboard - Manufacturer - Model CPU - Name - Architecture - NumberOfCores - CurrentClockSpeed Memory - Name - Manufacturer - MemoryType - Speed - DeviceLocator - Capacity - Model Video - Name - VideoProcessor - AdapterRam - VideoMemoryType - VideoArchitecture - VideoMode Network - Name - ProductName - Manufacturer - PhysicalAdapter HardDrive - Index - Description - InterfaceType - Manufacturer - Model - Size - Partitions 

通过使用以下我们可以获得我需要的所有数据:

 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()来查找每个数据字段。 我们可以通过引用下面的表来看到使用哪个函数。 这也位于这个链接 。

然后,我们检查'v'的类型以确保它的dictionary (这就是我使用dictionary ),并检查'dmi_type ”是我们正在搜索的正确代码。

例如:

  Type Information ---------------------------------------- 0 BIOS 1 System 2 Base Board 3 Chassis 4 Processor 5 Memory Controller 6 Memory modulee 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']))