Hallo Sirius3,
Danke für die Antwort und die Hinweise.
Liste wollte ich später dann im überarbeiteten Code ändern.
Die Abfrage ergibt je row
(Typ, Dateiname, Speicherdatum). Als viertes Element soll in der Liste der dazugehörige Dateipfad hinzukommen.
Um diese Klammer aufzulösen und den Pfad an "Position 4" zu bekommen und nicht an 2 habe ich extend(row) gewählt.
Zu deiner Anmerkung zu Mehrfachtreffern: Ich war eigentlich der Meinung durch files[0] hätte ich das gelöst.
Mag Zufall gewesen sein, aber hat geklappt.
Im Code habe ich auch keine regex. Irgendjemand hat halt mal z. b. die Datei "[i-Fehler][1]warum auch immer so einen Dateinamen.jpg" gespeichert.
So steht sie als Dateiname in der Datenbank und auch das gesuchte File ist mit diesem Namen evtl auch auf der Platte.
Wenn so ein Konstrukt vorliegt bricht das Script ab. Auf regex bin ich wegen :
raise source.error(msg, len(this) + 1 + len(that))
re.error: bad character range i-f at position 64
gekommen.
Oder das ganze Traceback?
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Paul\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1892, in __call__
return self.func(*args)
File "G:\dateisuche\002testen_backup.py", line 76, in curSelect
files = glob.glob(pfad, recursive=True)
File "C:\Users\Paul\AppData\Local\Programs\Python\Python39\lib\glob.py", line 21, in glob
return list(iglob(pathname, recursive=recursive))
File "C:\Users\Paul\AppData\Local\Programs\Python\Python39\lib\glob.py", line 74, in _iglob
for name in glob_in_dir(dirname, basename, dironly):
File "C:\Users\Paul\AppData\Local\Programs\Python\Python39\lib\glob.py", line 85, in _glob1
return fnmatch.filter(names, pattern)
File "C:\Users\Paul\AppData\Local\Programs\Python\Python39\lib\fnmatch.py", line 58, in filter
match = _compile_pattern(pat)
File "C:\Users\Paul\AppData\Local\Programs\Python\Python39\lib\fnmatch.py", line 52, in _compile_pattern
return re.compile(res).match
File "C:\Users\Paul\AppData\Local\Programs\Python\Python39\lib\re.py", line 252, in compile
return _compile(pattern, flags)
File "C:\Users\Paul\AppData\Local\Programs\Python\Python39\lib\re.py", line 304, in _compile
p = sre_compile.compile(pattern, flags)
File "C:\Users\Paul\AppData\Local\Programs\Python\Python39\lib\sre_compile.py", line 764, in compile
p = sre_parse.parse(p, flags)
File "C:\Users\Paul\AppData\Local\Programs\Python\Python39\lib\sre_parse.py", line 948, in parse
p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
File "C:\Users\Paul\AppData\Local\Programs\Python\Python39\lib\sre_parse.py", line 443, in _parse_sub
itemsappend(_parse(source, state, verbose, nested + 1,
File "C:\Users\Paul\AppData\Local\Programs\Python\Python39\lib\sre_parse.py", line 834, in _parse
p = _parse_sub(source, state, sub_verbose, nested + 1)
File "C:\Users\Paul\AppData\Local\Programs\Python\Python39\lib\sre_parse.py", line 443, in _parse_sub
itemsappend(_parse(source, state, verbose, nested + 1,
File "C:\Users\Paul\AppData\Local\Programs\Python\Python39\lib\sre_parse.py", line 598, in _parse
raise source.error(msg, len(this) + 1 + len(that))
re.error: bad character range i-f at position 64
Wenn ich im SQLite-Browser nachsehe, dann ist eben in der Reihenfolge dieser komische Dateiname dran. und mir fiel nix anderes ein, als das der Fehler sein könnte.
Die anderen Vorschläge versuche morgen mal.
Ich hatte zunächst mit os.walk und os.path.join, aber bin bislang nur mit glob.glob zum gewünschten Ergebnis gekommen.
Ich such mir den Namen der speichernden Person aus einer listbox per cursorselection und übergeb diese dann als variable an die abfrage, über die wir jetzt hier sprechen. Läuft.
Die Listbox wird aus der gleichen DB mit einer vorherigen Abfrage gefüllt.
Vielleicht war ich zu schnell zu stolz, das erste Programm(chen) fertig gestellt zu haben. Oder ich hätte alle Personen durchtesten sollen, und nicht nur die ersten 3.
Schönen Fußballabend ?? noch
Paul