glob Dateiname enthält [i-F > re.error
Verfasst: Montag 14. Juni 2021, 15:10
Hallo,
Mein erster Post hier im Forum und einer der ganz wenigen überhaupt bislang. Ich bin also nicht wirklich forenerfahren.
Mein erstes wirkliches Pythonprojekt habe ich soweit mit viel trail & (noch mehr) error bislang allein hinbekommen und es tut, was es soll.
Natürlich nicht ganz, sonst würde ich hier nicht schreiben.
Aus einer SQLite Datenbank lese ich, neben einigen anderen Angaben, den Dateinamen eines i.d.R. jpg aus.
Die Bilder/Videos befinden sich in einen Ordner mit diversen Unterordnern und müssen auch nicht zwangsläufig vorhanden sein.
Es können Ordner mit mehreren Tausend Dateien sein. Deswegen dieses Script.
Das funktioniert auch super hiermit:
Mein Problem ist nun, dass die Dateinamen auch regex-ähnliche Konstrukte enthalten können und mir in bestimmten Fällen dann ein re.error ausgegeben wird.
Im SQLite-Browser habe ich die Dateinamen mal gelöscht und dann lief die Sache auch durch.
Die Listenform habe ich gewählt, da es das erste war, was ich dazu für mich brauchbar gefunden hatte und nachvollziehen konnte.
Ich möchte diese Liste im späteren Verlauf mit dem docx-Modul weiterverarbeiten, was auch schon geklappt hat.
Löschen der Dateinamen in der Datenbank oder auf der Festplatte ist natürlich nur zum Testen eine Option.
Vielen Dank für einen kleinen (oder auch konkreten) Hinweis
Paul aus Lübeck
Mein erster Post hier im Forum und einer der ganz wenigen überhaupt bislang. Ich bin also nicht wirklich forenerfahren.
Mein erstes wirkliches Pythonprojekt habe ich soweit mit viel trail & (noch mehr) error bislang allein hinbekommen und es tut, was es soll.
Natürlich nicht ganz, sonst würde ich hier nicht schreiben.
Aus einer SQLite Datenbank lese ich, neben einigen anderen Angaben, den Dateinamen eines i.d.R. jpg aus.
Die Bilder/Videos befinden sich in einen Ordner mit diversen Unterordnern und müssen auch nicht zwangsläufig vorhanden sein.
Es können Ordner mit mehreren Tausend Dateien sein. Deswegen dieses Script.
Das funktioniert auch super hiermit:
Code: Alles auswählen
cursor.execute(sql, value)
abfrage = cursor.fetchall()
liste1 = []
for row in abfrage:
gesuchte_datei = row[1]
pfad = "G:/Bilder_Videos/**/" + str(gesuchte_datei)
files = glob.glob(pfad, recursive=True)
print(gesuchte_datei) # Rückmeldung (nix für den eigenlichen Code
if files:
liste1.extend(row)
liste1.append(files[0])
else:
liste1.append(row)
liste1.append('nicht vorhanden')
print(len(abfrage)) # Rückmeldung (nix für den eigentlichen Code)
print(liste1)
Im SQLite-Browser habe ich die Dateinamen mal gelöscht und dann lief die Sache auch durch.
Die Listenform habe ich gewählt, da es das erste war, was ich dazu für mich brauchbar gefunden hatte und nachvollziehen konnte.
Ich möchte diese Liste im späteren Verlauf mit dem docx-Modul weiterverarbeiten, was auch schon geklappt hat.
Löschen der Dateinamen in der Datenbank oder auf der Festplatte ist natürlich nur zum Testen eine Option.
Vielen Dank für einen kleinen (oder auch konkreten) Hinweis
Paul aus Lübeck