Wie man pyinotify
nutzt erschließt sich mir nicht auf den ersten Blick. Ich habe versucht das Tutorial zu verstehen aber das überschreitet meinen Fähigkeiten. Klassen und Objekte sind noch immer ein rotes Tuch für mich, leider.
Falls du keine Drittbibliothek nutzen willst, dann könnte man auch das Änderungsdatum der Datei mittels os.path.getmtime() überwachen.
Vielen Dank für diesen Tipp, das klingt viel versprechend. Das löst aber nicht mein Problem mit dem Event-Handling. Vom Prinzip her will ich mein Programm nur dann laufen lassen wenn etwas passiert. Also nur wenn sich die Datei ändert soll das Programm was tun. Mich stört die Endlosschleife.
Im Übrigen hätte bei deiner Methode ein if f.readline():
ausgereicht¹. Zeichenketten mit Inhalt sind in Python immer wahr. Zudem fragt sich, ob du tatsächlich immer die erste Zeile auslesen willst und in Wirklichkeit gucken willst, ob eine Zeile dazu gekommen ist. Mal davon ab, dass man hier eher die Dateigröße prüfen würde, müsstest du dir andernfalls die Dateiposition merken (f.tell()
) und dort beim erneuten Öffnen hinspringen (f.seek()
). Aber wie gesagt: Vergleiche lieber die mtime
. 😉
Die Datei besteht aus nur eine Zeile und einem Zeichen, entweder '0' oder '1'. Diese beiden Chars wandle ich in 'True' oder 'False' um. Wobei der Wert an sich nicht wirklich interessant ist. Lediglich die Änderung True->False oder eben False->True.