Hallo,
wie kann ich Python3 abfragen ob das ein Raspi B+ ist? (40 Pin)
Danke
Gottfried
Hallo,
wie kann ich Python3 abfragen ob das ein Raspi B+ ist? (40 Pin)
Danke
Gottfried
ist das ein Raspi B+?? Schau mal ob du hier fündig wirst!
[code=php]#!/usr/bin/python
import subprocess
cpuInfo=subprocess.check_output('cat /proc/cpuinfo', shell=True).strip().split('\n')
revision=[line for line in cpuInfo if 'Revision' in line][0].split(':')[1].strip()
print "Found revision %s" % revision[/php]
liefert Dir den aktuellen Revision Code. Dann noch diese Tabelle nehmen und auf das gewünschte Modell abfragen
Super, aber die Zeile
cpuInfo=subprocess.check_output('cat /proc/cpuinfo', shell=True).strip().split('\n')
produziert
Type Error: Type str doesn't support the buffer API
was immer das heisst ???
[code=php]#!/usr/bin/python
import subprocesscpuInfo=subprocess.check_output('cat /proc/cpuinfo', shell=True).strip().split('\n')
revision=[line for line in cpuInfo if 'Revision' in line][0].split(':')[1].strip()
print "Found revision %s" % revision[/php]liefert Dir den aktuellen Revision Code. Dann noch diese Tabelle nehmen und auf das gewünschte Modell abfragen
Habe übersehen dass Du Python3 benutzt
Anbei die Version für Python3
[code=php]#!/usr/bin/python3
import subprocess
cpuInfo=subprocess.check_output('cat /proc/cpuinfo', shell=True).strip().decode('utf-8').split('\n')
revision=[line for line in cpuInfo if 'Revision' in line][0].split(':')[1].strip()
print ("Found revision", revision)[/php]
Oh man, cat benutzen, um eine Datei zu oeffnen, damit die auf der Standardausgabe ausgeben wird, die man dann einliest.... das ist schon ein bisschen durch die Brust. Ein simples
with open("/proc/cpuinfo") as inf:
revision=[line for line in inf if 'Revision' in line][0].split(':')[1].strip()
sollte das gleiche tun, und ein bisschen leichtgewichtiger sein.
Danke Euch
#!/usr/bin/python
import subprocess
def WhichRaspi() :
# identify Raspi
# "https://forum-raspberrypi.de/forum/thread/24244-ist-das-ein-raspi-b/"
DEBUG = False # see additional info
SEECP = False # see cpuinfo
with open("/proc/cpuinfo") as inf:
revision=[line for line in inf if 'Revision' in line][0].split(':')[1].strip()
inf.close()
if DEBUG : print ("Found revision %s" % revision)
if SEECP :
inf=open("/proc/cpuinfo",'r')
txt=inf.read()
print (txt)
inf.close()
if revision == '0002' :
MB = 256; Model= 'Model B Revision 1.0'
elif revision == '0003' :
MB = 256; Model= 'Model B Revision 1.0 + ECN0001 (no fuses, D14 removed)'
elif revision >= '0004' and revision <= '0006':
MB = 256; Model= 'Model B Revision 1.0 + ECN0001 (no fuses, D14 removed)'
elif revision >= '0007' and revision <= '0009' :
MB = 256; Model= 'Model B Revision 2.0 Mounting holes'
elif revision >= '000d' and revision <= '000f' :
MB = 512; Model= 'Model B Revision 2.0 Mounting holes'
elif revision == '0010' :
MB = 512; Model= 'Model B+'
elif revision == '0011' :
MB = 512; Model= 'Compute Module'
elif revision == '0012' :
MB = 256; Model= 'Model A+'
elif revision == 'a01041' :
MB = 1024; Model= 'Pi 2 Model B - (Sony, UK)'
elif revision == 'a21041' :
MB = 1024; Model= 'Pi 2 Model B - (Embest, China)'
elif revision == '900092' :
MB = 512; Model= 'PiZero'
else :
MB = 0; Model= 'not known - wrong revision code?'
print (Model)
return (revision,MB,Model)
if __name__ == '__main__':
x=WhichRaspi()
print ('revision: ',x[0],' with ',x[1],'MB Type : ',x[2])
Alles anzeigen
@famp
"BTW: lmgtfy hilft sehr bei Fehlermeldungen undefined"
Du hast recht aber ich habe mit dem OOP-Kauderwelsch ein echtes Problem ... sorry
Zitat
Kein Problem . Es kommt nur häufiger vor, dass Leute eine Fehlermeldung posten und dann um Hilfe fragen. Dabei ist es sehr häufig ausreichend genau den Fehlertext einer Suchmaschine zum Frasse vorzuwerfen (vor natuerlich individuelle Infos wie IPs usw entfernen). Diese Empfehlung gebe ich dann immer gerne. Natürlich kommt es dann aber auch wie bei Dir vor dass man dann die gefundene Information nicht versteht
PS: Finde ich gut dass Du Deinen fertigen Code noch mal für die Allgemeinheit gepostet hast :thumbs1:
Kein Problem . Es kommt nur häufiger vor, dass Leute eine Fehlermeldung posten und dann um Hilfe fragen. Dabei ist es sehr häufig ausreichend genau den Fehlertext einer Suchmaschine zum Frasse vorzuwerfen (vor natuerlich individuelle Infos wie IPs usw entfernen). Diese Empfehlung gebe ich dann immer gerne. Natürlich kommt es dann aber auch wie bei Dir vor dass man dann die gefundene Information nicht verstehtPS: Finde ich gut dass Du Deinen fertigen Code noch mal für die Allgemeinheit gepostet hast :thumbs1:
Danke - aber hier gibt es keine Sektion wie "Codeschnipsel" oder so...?
Jedenfalls Danke für Eure Hilfe
...Danke - aber hier gibt es keine Sektion wie "Codeschnipsel" oder so...?
Nein, dazu bräuchte man ein Wiki. Aber wenn man etwas geschickt hier im Forum sucht wird man Deinen Code finden.
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!