问题描述
我使用的是Fedora 17 64位,已安装 dmidecode 和 python-dmidecode ,在我寻找有关如何使用python-dmidecode的文档时,我还没有找到任何事物.我在浏览源代码时发现了一个示例,但仅此而已.任何熟悉此模块以及如何在python中访问它的人?您可以参考我的任何文档将对您有所帮助.
I'm using Fedora 17 64bit, installed dmidecode and python-dmidecode, in my search for a doc on how to use python-dmidecode, i've yet to find anything. I found an example while browsing the source but nothing else. Anyone familiar with this module and how to access it in python? Any documentation you can reference me to would be helpful.
我正在尝试获取Fedora 17中的硬件规格:
I'm trying to obtain hardware specifications in Fedora 17:
在使用管理命名空间的C#中,我能够获得以下所有内容: 是否可以通过Python在Linux中获得相同的内容?
In C# using Management namespace, I was able to obtain all the following: Will it be possible to obtain the same In Linux via Python?
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
推荐答案
通过使用以下内容,我们可以找到所需的所有数据:
Figured it out, by using the following we can obtain all data that I need:
import dmidecode
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()
来查找数据的每个字段.我们可以通过参考下表来查看要使用的功能.该链接也位于此链接.
We iterate the dmidecode.bios().values()
to find each field of data. We can see which function to use by referencing the table below. Which is also located at this link.
然后我们检查'v'
的类型以确保其为dictionary
(这就是我在我的情况下所使用的) ,然后检查'dmi_type
'是正确的代码我们正在寻找的东西.
We then check the type of 'v'
to ensure its a dictionary
(That's what I'm using in my case) and we check that the 'dmi_type
' is the correct code for what we are searching for.
例如:
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 = []
),并按如下方式添加键和值:
If we wanted to get the BIOS Info, we would then reference v['dmi_type'] == 0
this will return a dictionary. We can then create our own dict (in my case BIOSdict = []
) and add the key and value as so:
BIOSdict["Name"] = str((v['data']['Vendor']))
这篇关于Python Linux dmidecode,如何通过解析获取硬件信息?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!