Heyho liebe Pythonfreunde,
ist es möglich Teildaten zur Weiterverarbeitung aus dem Namen einer Datei zu exportieren.
Beispiel zum Verständnis:
meine Datei heißt: 1_5_Blume.
Nun möchte ich, dass in einem Tablewidget die Blume an Stelle (1,5) steht mit dem Elementnamen "Blume". Ich denke mal falls es geht ist das Stichwort Split.
Ich schätze ich muss irgendwie den Namen der Datei als Liste in Qt kriegen.
Jedoch bin ich ratlos im Ansatz, vllt hat jemand einen Tipp für mich.
MfG Jepedaja
Dateinamen extrahieren
@Jepedaja: Wie so oft muss man wissen was man für Daten hat, also welcher Typ und welchen Wert das hat. Der Typ bestimmt welche Operationen möglich sind. Und dann muss man sich Schritt für Schritt an das gewünschte Ergebniss heran arbeiten. Den ersten Schritt hast Du ja schon richtig erfasst: den Dateinamen aufteilen mit dem Stichwort „Split”. Welchen Datentyp hast Du denn da konkret und welches Problem besteht beim Aufteilen?
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Imho ist das übrigens keine Qt spezifische Frage *und* auch kein Problem, welches man auf GUI-Ebene lösen sollte 
(Das riecht für mich ja stark nach eigenem Modell mit ``QTableView``!)

(Das riecht für mich ja stark nach eigenem Modell mit ``QTableView``!)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Qt-spezifisch wird es wenn der Dateiname aus der GUI kommt und den Typ `QString` hat. 

QT spezifisch oder nicht...
Um die Dateinamen in eine Liste zu bekommen, kannst du wie folgt vorgehen (ungetestet und aus dem Kopf)
Beachte, dass "os.listdir()" auch sub-ordner im angegebenen Pfad mit auflistet, diese erkennt man im Normalfall daran, dass diese keine "*.ext" Endung haben.
Schau dir die Doku dazu mal an: https://docs.python.org/2/library/os.html#os.listdir
Viel Spaß noch beim coden
Um die Dateinamen in eine Liste zu bekommen, kannst du wie folgt vorgehen (ungetestet und aus dem Kopf)
Code: Alles auswählen
path = "/pfad/zu/den/Blumen"
files_in_path = os.listdir(path) # hier sind eventuell auch Ordnernamen von eventuellen Unterordnern enthalten
files_in_path.sort()
filenamelist = []
for filename in files_in_path:
if filename.endswith("png"): #mal davon ausgegangen, dass es sich um PNG Bilder handelt... ansonsten ändern
single_filename = filename.split("_") # davon ausgegangen, dass alle deine Dateinamen gleich formatiert sind wie oben
filenamelist.append(single_filename)
print(filenamelist)
#das Ergebnis müsste in etwa so aussehen [[1, 5, Blume.png], [2, 5, Blume.png], [....... ]]
Schau dir die Doku dazu mal an: https://docs.python.org/2/library/os.html#os.listdir
Viel Spaß noch beim coden
