use*_*312 28
所述platform.processor()函数返回处理器名称为字符串.
>>> import platform
>>> platform.processor()
'Intel64 Family 6 Model 23 Stepping 6, GenuineIntel'
Run Code Online (Sandbox Code Playgroud)
Spa*_*man 12
这里有一些代码:
https://github.com/pydata/numexpr/blob/master/numexpr/cpuinfo.py
它非常依赖操作系统,所以有很多if-branches.但它确实能够解决所有CPU功能.
$ python cpuinfo.py
CPU information: getNCPUs=2 has_mmx has_sse has_sse2 is_64bit is_Intel is_Pentium is_PentiumIV
Run Code Online (Sandbox Code Playgroud)
对于linux,它查找/ proc/cpuinfo并尝试使用uname.对于Windows,它看起来像使用注册表.
要使用此模块获取[first]处理器名称:
>>> import cpuinfo
>>> cpuinfo.cpu.info[0]['model name']
'Intel(R) Pentium(R) 4 CPU 3.60GHz'
Run Code Online (Sandbox Code Playgroud)
如果它有多个处理器,那么cpuinfo.cpu.info的元素将具有它们的名称.我不认为我曾经见过具有两种不同处理器的PC(不是自80年代以来,你可以为你的6502 CPU BBC Micro获得Z80协处理器......)
dbn*_*dbn 12
这是一个hackish的代码,应该始终在我有任何合理经验的三个平台上找到处理器的名称.
import os, platform, subprocess, re
def get_processor_name():
if platform.system() == "Windows":
return platform.processor()
elif platform.system() == "Darwin":
os.environ['PATH'] = os.environ['PATH'] + os.pathsep + '/usr/sbin'
command ="sysctl -n machdep.cpu.brand_string"
return subprocess.check_output(command).strip()
elif platform.system() == "Linux":
command = "cat /proc/cpuinfo"
all_info = subprocess.check_output(command, shell=True).strip()
for line in all_info.split("\n"):
if "model name" in line:
return re.sub( ".*model name.*:", "", line,1)
return ""
Run Code Online (Sandbox Code Playgroud)
工作代码(如果这不适合您,请告诉我):
import platform, subprocess
def get_processor_info():
if platform.system() == "Windows":
return platform.processor()
elif platform.system() == "Darwin":
return subprocess.check_output(['/usr/sbin/sysctl', "-n", "machdep.cpu.brand_string"]).strip()
elif platform.system() == "Linux":
command = "cat /proc/cpuinfo"
return subprocess.check_output(command, shell=True).strip()
return ""
Run Code Online (Sandbox Code Playgroud)
我在这里尝试了各种解决方案.cat /proc/cpuinf为多核机器提供了大量的输出,多页长,platform.processor()似乎给你很少.使用Linux和Python 3,以下内容返回了大约20行的非常有用的摘要:
import subprocess
print((subprocess.check_output("lscpu", shell=True).strip()).decode())
Run Code Online (Sandbox Code Playgroud)
对于易于使用的软件包,可以使用cpuinfo。
安装为 pip install py-cpuinfo
从命令行使用: python -m cpuinfo
码:
import cpuinfo
cpuinfo.get_cpu_info()['brand']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42657 次 |
| 最近记录: |