Fragen ob Textdatei erweitert wurde, dann Schleife laufen la

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Jonny550
User
Beiträge: 7
Registriert: Freitag 24. Juli 2015, 11:40

Freitag 24. Juli 2015, 11:55

Hallo,

ich möchte gerne, das mein Programm ständig abfragt, ob in einer Textdatei etwas hinzugefügt wurde und wenn dies geschehen ist, soll meine Schleife einmal durchlaufen und die beiden Werte anhängen. Anschließend wird wieder gefragt, ob was neues dazu kommt.
So möchte ich gerne das unten stehenden Programmschnippsel weiterentwickeln. Zur Zeit wird die Messung jede Sekunde ausgefüht, bis ich dies unterbreche.

Code: Alles auswählen

def main():
  try:
    Pfad = "/vonPi/Messwerte/"+"MesswerteTest.txt"+"_"+Zeitstempel
    file_out = open(Pfad,"a") # w=ueberschreiben, a=anhaengen der Daten, r=lesen
    while True:
      Distance1 = MeasureDistance1()
      print("gemessene Distanz1 = %.4f m" % Distance1)
      file_out.write("d1 %.4f m     " % Distance1)

      Distance2 = MeasureDistance2()
      print("gemessene Distanz2 = %.4f m" % Distance2)
      file_out.write("d2 %.4f m\n" % Distance2)

      if open(Pfad,"r")>:
        

      time.sleep(1) # Wiederholung der Messung in Sek.

  # reset GPIO settings if user pressed Ctrl+C
  except KeyboardInterrupt:
    print("Measurement stopped by user")
    GPIO.cleanup()

Danke schonmal für eure Hilfe!!
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Freitag 24. Juli 2015, 19:36

Du kannst mit inotify bzw. dem Python Binding die Datei überwachen, falls das Event kommt, dass sich die Datei geändert hat, kannst du darauf reagieren.
the more they change the more they stay the same
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Freitag 24. Juli 2015, 21:29

Neben inotify kannst du noch die Modification Time mtime vergleichen. Zugriff hast du beispielsweise per `os.path.getmtime`.
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Freitag 24. Juli 2015, 23:01

Und es gehört nicht in "Codesnippets" weil es eine Frage ist und kein Code den anderen nutzten können :wink:

Ich verschiebe das mal...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Sirius3
User
Beiträge: 7779
Registriert: Sonntag 21. Oktober 2012, 17:20

Sonntag 26. Juli 2015, 20:30

@Jonny550: wer schreibt denn in diese Datei? Ist es wirklich wichtig, dass die neu hinzugekommenen Zeilen sofort verarbeitet werden? Die Einrückung ist immer 4 Leerzeichen, Variablen werden klein_mit_unterstrich geschrieben. Geöffnete Dateien müssen auch wieder geschlossen werden.
Antworten