Dateinamen extrahieren

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Jepedaja
User
Beiträge: 17
Registriert: Dienstag 10. Februar 2015, 17:03

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
Zuletzt geändert von Jepedaja am Freitag 27. Februar 2015, 12:42, insgesamt 2-mal geändert.
BlackJack

@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?
Benutzeravatar
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``!)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

Qt-spezifisch wird es wenn der Dateiname aus der GUI kommt und den Typ `QString` hat. :-)
Acer54
User
Beiträge: 13
Registriert: Donnerstag 17. Juli 2014, 20:42

QT spezifisch oder nicht...

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], [....... ]]
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 ;-)
Jepedaja
User
Beiträge: 17
Registriert: Dienstag 10. Februar 2015, 17:03

Danke für die vielen Antworten, ich hatte es dann schon selber hinbekommen, ähnlich wie Acer54 mir es erklärt hat.

dennoch lieben Dank
Antworten