Okay, dann ist dies quasi Gesetz mit der while und for-Schleife, obwohl sie für den endlos Fall gleiches tun, danke.
Den stat-Aufruf habe ich ja bei dem set getestet, ohne Erfolg.
Beispeilsweise wäre ja hier nach dann der Fall, was passieren soll, wenn etwas "aktualisiert" wurde.
demnach würde ich hier hinter eine if-Bedingung mit einer Zeitabfrage der Datei einbauen müssen, weshalb ich wieder mit os.stat für die Datei arbeiten müsste, iwie sowas:
Das funktioniert so aber nicht, da ich keine weitere Abfrage einbaue, erweitere ich die Abfrage zu:
Code: Alles auswählen
if os.stat(filename in previous_text_files).st_atime != os.stat(filename in text_files).st_atime:
print(f"{filename} aktualisiert")
erhalte ich dauerhaft die Meldung, dass die Datei aktualisiert wurde.
Ich habe das ganze versucht in deinen Code miteinzubauen:
Code: Alles auswählen
from pathlib import Path
from time import sleep
from itertools import count
FOLDER = Path('S:\Palkovits\intern\HPLC-Daten\Jens Heller')
print("Erster Scan")
previous_text_files = set(FOLDER.rglob("*.txt"))
for i in count(1):
print(os.stat(filename).st_atime)
text_files = set(FOLDER.rglob("*.txt"))
for filename in text_files - previous_text_files:
print(f"{filename} ist neu")
for filename in previous_text_files - text_files:
print(f"{filename} gelöscht")
for filename in previous_text_files and text_files:
if os.stat(filename in previous_text_files).st_atime != os.stat(filename in text_files).st_atime:
print(f"{filename} aktualisiert")
previous_text_files = text_files
print("Lauf", i)
sleep(5)
Wo liegt denn mein Denkfehler? oder kenne ich erfahrungsmäßig gewisse Methoden nicht?
Muss ich vllt nach der Abfrage bei gleichen Sets die Datei öffnen und Zeile für Zeile vergleichen lassen?
Falls ja, wie baue ich diese Variante für n Dateien um, was ich bei Goggle fand, war nur zu konkreten Dateien.
Danke für deine Hilfe