如何使用Python在Windows上获取CPU序列号?

时间:2017-09-09 12:44:27

标签: python windows cpu

我在Windows 10上用Python-3.6.2编写了一个程序。我想得到CPU序列号。

这是我的代码:

def getserial():
    # Extract serial from cpuinfo file
    cpuserial = "0000000000000000"
    try:
        f = open('/proc/cpuinfo','r')
        for line in f:
            if line[0:6]=='Serial':
                cpuserial = line[10:26]
        f.close()
    except:
        cpuserial = "ERROR000000000"
  return cpuserial

print(getserial())

当我运行该程序时,它会打印:ERROR000000000

我该如何解决?

1 个答案:

答案 0 :(得分:0)

您的代码不会引发任何异常。因此,您没有看到错误:Windows上没有'/ proc / cpuinfo'文件。

我已经重写了你的代码:

def getserial():
    # Extract serial from cpuinfo file
    with open('/proc/cpuinfo','r') as f:
        for line in f:
            if line[0:6] == 'Serial':
                return line[10:26]
        return "0000000000000000"

首先,我有一个with语句来使用文件上下文管理器:无论何时引发异常,您的文件都将被关闭。

我简化了循环:如果找到“Serial”条目,则返回值。

修改

如果你有一个版本> = 2.6的python,你可以简单地使用

import multiprocessing

multiprocessing.cpu_count()

http://docs.python.org/library/multiprocessing.html#multiprocessing.cpu_count

<强> EDIT2

我发现获得“cpuinfo”的最佳解决方案是使用py-cpuinfo库。

import cpuinfo
info = cpuinfo.get_cpu_info()
print(info)

但是,我认为“串行”输入不是标准的。我无法在经典系统上看到它。