Seite 1 von 1

Dateinamen extrahieren

Verfasst: Freitag 27. Februar 2015, 12:08
von Jepedaja
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

Re: Dateinamen extrahieren

Verfasst: Freitag 27. Februar 2015, 12:34
von 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?

Re: Dateinamen extrahieren

Verfasst: Freitag 27. Februar 2015, 15:05
von Hyperion
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``!)

Re: Dateinamen extrahieren

Verfasst: Freitag 27. Februar 2015, 15:24
von BlackJack
Qt-spezifisch wird es wenn der Dateiname aus der GUI kommt und den Typ `QString` hat. :-)

Re: Dateinamen extrahieren

Verfasst: Freitag 27. Februar 2015, 18:45
von Acer54
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 ;-)

Re: Dateinamen extrahieren

Verfasst: Freitag 6. März 2015, 20:14
von Jepedaja
Danke für die vielen Antworten, ich hatte es dann schon selber hinbekommen, ähnlich wie Acer54 mir es erklärt hat.

dennoch lieben Dank