我在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
。
我该如何解决?
答案 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)
但是,我认为“串行”输入不是标准的。我无法在经典系统上看到它。