在Windows下获取系统信息(CPU速度-总RAM-显卡型号等)
Get system information(CPU speed-Total RAM-Graphic Card model etc.) under Windows
我搜索了很多,但找不到任何有用的东西。是否可以获取系统信息,例如;
CPU: Intel Core i7-3770K CPU @3.5Ghz
RAM: 8GB
Graphic Card: NVIDIA GeForce GTX 680
低于 Windows?我怎样才能达到这个输出?
编辑:platform.processor()
没有提供我想要的输出。所以这对我没用。
一段时间以来,我一直想知道如何自己做,所以我仔细研究了一下,想出了使用 wmi
(需要 pywin32
)的解决方案。 当然不用说了,这只适用于Windows台机器(而且题目有Windows
标签)
import wmi
computer = wmi.WMI()
computer_info = computer.Win32_ComputerSystem()[0]
os_info = computer.Win32_OperatingSystem()[0]
proc_info = computer.Win32_Processor()[0]
gpu_info = computer.Win32_VideoController()[0]
os_name = os_info.Name.encode('utf-8').split(b'|')[0]
os_version = ' '.join([os_info.Version, os_info.BuildNumber])
system_ram = float(os_info.TotalVisibleMemorySize) / 1048576 # KB to GB
print('OS Name: {0}'.format(os_name))
print('OS Version: {0}'.format(os_version))
print('CPU: {0}'.format(proc_info.Name))
print('RAM: {0} GB'.format(system_ram))
print('Graphics Card: {0}'.format(gpu_info.Name))
输出示例:
OS Name: Microsoft Windows 7 Ultimate
OS Version: 6.1.7601 7601
CPU: Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
RAM: 15.9443855286 GB
Graphics Card: NVIDIA GeForce GTX 960
您可以通过 pip
:
安装两个必需的包
pip install --upgrade wmi
pip install --upgrade pypiwin32
要了解您可以在各种 Win32 控制器中访问哪些其他变量 类,请查看此文档:
在 SO 上找到的相关答案:
更新: 对于系统 RAM,您可以使用 os_info.TotalVisibleMemorySize
(returns 以千字节为单位的值)或 computer_info.TotalPhysicalMemory
(returns 以字节为单位的值)。如果您使用后者,您可以使用 hurry.filesize
将其快速转换为人类可读的字符串。
例如:
from hurry.filesize import size
...
size(int(computer_info.TotalPhysicalMemory))
在我的例子中输出:15G
您甚至可以将 G 修改为您想要的任何其他内容。有关详细信息,请参阅此 SO 答案:
我搜索了很多,但找不到任何有用的东西。是否可以获取系统信息,例如;
CPU: Intel Core i7-3770K CPU @3.5Ghz
RAM: 8GB
Graphic Card: NVIDIA GeForce GTX 680
低于 Windows?我怎样才能达到这个输出?
编辑:platform.processor()
没有提供我想要的输出。所以这对我没用。
一段时间以来,我一直想知道如何自己做,所以我仔细研究了一下,想出了使用 wmi
(需要 pywin32
)的解决方案。 当然不用说了,这只适用于Windows台机器(而且题目有Windows
标签)
import wmi
computer = wmi.WMI()
computer_info = computer.Win32_ComputerSystem()[0]
os_info = computer.Win32_OperatingSystem()[0]
proc_info = computer.Win32_Processor()[0]
gpu_info = computer.Win32_VideoController()[0]
os_name = os_info.Name.encode('utf-8').split(b'|')[0]
os_version = ' '.join([os_info.Version, os_info.BuildNumber])
system_ram = float(os_info.TotalVisibleMemorySize) / 1048576 # KB to GB
print('OS Name: {0}'.format(os_name))
print('OS Version: {0}'.format(os_version))
print('CPU: {0}'.format(proc_info.Name))
print('RAM: {0} GB'.format(system_ram))
print('Graphics Card: {0}'.format(gpu_info.Name))
输出示例:
OS Name: Microsoft Windows 7 Ultimate
OS Version: 6.1.7601 7601
CPU: Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
RAM: 15.9443855286 GB
Graphics Card: NVIDIA GeForce GTX 960
您可以通过 pip
:
pip install --upgrade wmi
pip install --upgrade pypiwin32
要了解您可以在各种 Win32 控制器中访问哪些其他变量 类,请查看此文档:
在 SO 上找到的相关答案:
更新: 对于系统 RAM,您可以使用 os_info.TotalVisibleMemorySize
(returns 以千字节为单位的值)或 computer_info.TotalPhysicalMemory
(returns 以字节为单位的值)。如果您使用后者,您可以使用 hurry.filesize
将其快速转换为人类可读的字符串。
例如:
from hurry.filesize import size
...
size(int(computer_info.TotalPhysicalMemory))
在我的例子中输出:15G
您甚至可以将 G 修改为您想要的任何其他内容。有关详细信息,请参阅此 SO 答案: