使用Python获取Raspberry Pi修订版号

2

现在出现了许多不同的PCB版本,这些变化对Raspberry Pi 印刷电路板的设计进行了很小的更改。在最新版本中,其中一些更改可能会影响为早期版本开发的Python代码的操作。为了使您的脚本能够对这些更改做出反应,您可能需要标识电路板的修订版,以便您的脚本可以采取适当的措施。

以下Python函数“getrevision()”可用于返回包含硬件版本号的字符串。这是四个字符串,例如“0002”.

这是Python函数:

def getrevision():
  # Extract board revision from cpuinfo file
  myrevision = "0000"
  try:
    f = open('/proc/cpuinfo','r')
    for line in f:
      if line[0:8]=='Revision':
        length=len(line)
        myrevision = line[11:length-1]
    f.close()
  except:
    myrevision = "0000"

  return myrevision

如果您在Python脚本的开头包含此定义,则可以使用它来设置一个等于板修订版号的变量:

myrevision = getrevision()

如果此变量等于“0000”则在运行该函数时出现错误。

被过压的树莓派将带有一个前缀为“100”。如果我对设备施加过高的电压,最终将得到硬件修订代码:“1000002”.

在撰写本文时,您的董事会修订号可能是“0002”, “0003”, “0004”, “0005” or “0006”. You can use the 检查您的Raspberry Pi开发板版本 发布以仔细检查此Python函数的结果。

分享。

2条留言

  1. 只是挑剔,但是

    length=len(line)
    myrevision = line[11:length-1]

    可以用更短更简单的方式代替:

    myrevision = line[11:-1]

    或者,整个功能可以用更短但更简单的方式代替:

    def getrevision():
    return ([l[11:-1] for l in open('/proc/cpuinfo','r').readlines() if l[:8]=="Revision"]+['0000'])[0]

发表评论

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.