ich benutze kivy in Verbindung mit python und stoße mal wieder an meine Python-Grenzen.
folgender Code funktioniert, die Funktion "updateText" wird jede Sekunde aufgerufen und liest die Text Datei aus. Wenn nun ein anderes Script die Text Datei gerade bearbeitet (passiert unregelmäßig) , kann die Funktion auf die txt Datei nicht zugreifen und die Liste bleibt leer. Da ich anschließend auf bestimmte Stellen der Liste zugreifen möchte, laufe ich in ein "List index out of range" error
variable1 = StringProperty()
variable2 = StringProperty()
def updateText(self, dt):
with open("/home/pi/test.txt", "r") as f:
line_list = f.read().splitlines()
self.variable1 = line_list[0]
self.variable2 = line_list[2]
ich habe es schon hinbekommen, dass lesen in eine eigene Funktion auszulagern und der error abzufangen mit einem except. Ich komme allerdings nicht auf die Logik, wie in dem Moment wenn die Exception mal eintritt einfach die alte liste benutzt wird.
variable1 = StringProperty()
variable2 = StringProperty()
def updateText(self, dt):
line_list = self.read_txt(line_list)
self.variable1 = line_list[0]
self.variable2 = line_list[2]
def read_txt(self, list_old):
try:
with open("/home/pi/test.txt", "r") as f:
list = f.read().splitlines()
except IndexError:
list=list_old
return list
Alles anzeigen
Kann mir jemand eventuell dort einen Hinweis geben, womit man es realisieren könnte?
Gruß und voraus schon vielen Dank