Seite 1 von 1

Listen teilen nach Dateiformaten

Verfasst: Freitag 26. Oktober 2007, 11:53
von Christian85
Hi Jungs und Mädels,

mir stellt sich momentan folgendes Problem. Ich lese aus einem Verzeichnis Dateien unterschiedlicher Formate in eine Liste aus. So nun möchte ich das dynamisch anhand der unterschiedlichen Verzeichnisse verschiedene Listen erstellt werden, wo jeweils nur die Datein gleicher Formate abgelegt werden.

Bsp: xl.zip, musik. bat, readme.zip, readme.txt, ...

So und nun soll er automatisch daraus in unserem Fall drei Listen generieren.

und zwar eine Liste mit dem Namen zip und den Dateien: xl.zip und readme.zip
eine Liste mit den Namen bat und der Datei musik.bat usw...

Gibt es da irgendeine Funktion die das bewerkstelligt oder hat jemand einen Denkanstoss für mich wie man sowas am einfachsten realisieren kann?

Verfasst: Freitag 26. Oktober 2007, 11:58
von BlackVivi
Ich geb dir'n Stichwort:

os.walk
(ganz runterscrollen)

Damit müsste es ohne Probleme gehen.

Verfasst: Freitag 26. Oktober 2007, 12:11
von HarryPython
Hi


String Methods unter endswith, falls du bestimmte suchst.



Gruß
HarryPython

Verfasst: Freitag 26. Oktober 2007, 12:21
von HWK
Wenn es nur ein Verzeichnis ohne Unterverzeichnisse ist: glob.glob.
MfG
HWK

Verfasst: Freitag 26. Oktober 2007, 12:27
von Christian85
Danke schon mal für die Antworten. Meine zweite Überlegung wäre es jetzt falls das andere nicht funktinieren sollte was ich gleich mal ausprobieren werde es über eine Abfrage zu machen

Code: Alles auswählen

for (*.zip) in Liste:
dann soll er Operationen ausführen

wobei er mir da noch nen Synthax Fehler rausgibt.

Verfasst: Freitag 26. Oktober 2007, 12:39
von BlackVivi
Hmpf, mal ein Gedanke von mir: (Vorsicht, Pseudocode oO Gerade ausgedacht, könnte auch gar nicht funktionieren. Is' ja auch nur'n Gedankenanstoss, wie man das realisieren könnte.)

Code: Alles auswählen

import os
from pprint import pprint
extensionlist = {}

for root, subdirs, files in os.walk(r"d:\temp"):
    for fl in files:
        ext = os.path.splitext(fl)[1]
        try:
            extensionlist[ext].append(fl)
        except:
            extensionlist[ext] = []
            extensionlist[ext].append(fl)

pprint(extensionlist)
//Edit:
Ich weiß zwar nicht, was du mit der Wildcard machen möchtest, aber der Ausdruck:

Code: Alles auswählen

for (*.zip) in Liste:
is ja auf jedenfall falsch. Man muss schon einen String benutzen:

Code: Alles auswählen

for "*.zip" in Liste:
Aber so einfach funktioniert das nicht... Gibt schon Möglichkeiten so eine Wildcard zu implementieren, in 2.5 is's mit dem in Statement etwas einfacher:

Code: Alles auswählen

for filename in liste:
    if ".zip" in filename: