ich habe eine Datei mit Messwerten unterschiedlicher Sensoren, die Farbcodiert sind. Diese möchte ich nun auswerten. Nachfolgend der Code mit dem ich begonnen bin das zu bewerkstelligen:
Code: Alles auswählen
import sys
file=open(r"D:/Python/temperaturlog.txt")
inhalt=file.read()
file.close
# Funktion zum Aufteilen der Liste nach Sensoren
def liste(zwliste,sensor):
sensor.append([zwliste[0],
zwliste[1],
zwliste[2],
float(zwliste[3].replace(",",".")),
zwliste[4]])
#Trennen am Zeilenumbruch
zeilenliste=inhalt.split(chr(10))
#leere Listen
#Blau=[]
#Schwarz=[]
#Draussen1=[]
Sensoren=[]
#Alle unterschiedlichen Sensoren in eine Liste schreiben
for zeile in zeilenliste:
zwliste=zeile.split(";")
if Sensoren.count(zwliste[0])==0 and zwliste[0]!="":
Sensoren.append(zwliste[0])
# Sortieren der Sonsoren
for j in range(0,len(Sensoren),1):
#Jede Zeile entsprechend des Sensors verarbeiten
for zeile in zeilenliste:
if zeile:
zwliste=zeile.split(";")
liste(zwliste,Sensoren[j])
#if zwliste[0]=="Schwarz":
# liste(zwliste,Schwarz)
#elif zwliste[0]=="Blau":
# liste(zwliste,Blau)
#elif zwliste[0]=="Draussen1":
# liste(zwliste,Draussen1)
#Ausgabe
#for p in Blau:
# print(f"{p[0]} {p[1]} {p[2][:5]} {p[3]:.2f} {p[4]}")
#for p in Schwarz:
# print(f"{p[0]} {p[1]} {p[2][:5]} {p[3]:.2f} {p[4]}")
#for p in Draussen1:
# print(f"{p[0]} {p[1]} {p[2][:5]} {p[3]:.2f} {p[4]}")
Ich wollte den Bereich "dynamisch" gestalten, so dass wenn Sensoren hinzukommen diese ohne Aufwand automatisch integriert werden. Das Problem liegt konkret in: " liste(zwliste,Sensoren[j])" Meine Idee war, für jeden Sensor eine neue eigene Liste zu erstellen. Sensor[j] ergibt die Farbe des Sensors.
Folgende Fehlermeldung bekomme ich:
Wenn ich den auskommentierten Bereich "#if zwliste[0]=="Schwarz": #liste(zwliste,Schwarz)" klappt das wie ich mir das vorstelle. Ich verstehe das so, dass meine Funktion eine Liste als Parameter erwartet. Meine Gedanke war, dass ich so eine neue Liste, welche ich über die Farbe anspreche, generiere.Traceback (most recent call last):
File "D:\Python\Temeraturauswertung.py", line 35, in <module>
liste(zwliste,Sensoren[1])
File "D:\Python\Temeraturauswertung.py", line 8, in liste
sensor.append([zwliste[0],
AttributeError: 'str' object has no attribute 'append'
Hier komme ich nicht mehr weiter, ich stecke noch in den Anfängen mit Python. Ich bin noch nicht so firm mit Dictionarys, vielleicht wäre das die elegantere Lösung. Kann mir da jemand einen Tip geben.
Vielen Dank und Gruß
Krischanb