Hallo Python-Freaks,
ich möchte folgendes erreichen:
Mein Programm soll alle Dateien (Bilder) des Verzeichnisses X sowie die Dateien aller Unterverzeichnisse bearbeiten. Dazu 2 Fragen:
1) Wie geht man am besten vor? Ich dachte, erstmal alle Dateien per rekursiver Funktion in eine Liste einlesen und dann nacheinander abarbeiten... Kann eine Liste auch ein paar hundert Einträge haben (Performance?)? Oder sollte man lieber Ordner für Ordner vorgehen?
2) Wie sieht der Pseudocode für die rekursive Funktion aus?
Ich hab hier im Forum schon was gefunden aber das war wenig hilfreich. Die walk-Funktion ist mir ebenso bekannt, ich möchte es aber lieber selbst bewerkstelligen.
Danke für Tipps,
bogomip
Eine Serie von Dateien manipulieren
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Schlichte Frage: Wozu? Wie du sagtest, `walk` existiert, löst dein Problem und ist gut getestet. Warum also eine Lösung selbst machen, die wohl kaum besser ist aber mit mehr Arbeitsaufwand verbunden ist?bogomip hat geschrieben:Ich hab hier im Forum schon was gefunden aber das war wenig hilfreich. Die walk-Funktion ist mir ebenso bekannt, ich möchte es aber lieber selbst bewerkstelligen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo bogomip!bogomip hat geschrieben:Die walk-Funktion
Nimm ``os.walk``!
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
-
- User
- Beiträge: 6
- Registriert: Dienstag 28. August 2007, 21:36
- Wohnort: Hettenshausen
- Kontaktdaten:
Der LerneffektLeonidas hat geschrieben:Schlichte Frage: Wozu? Wie du sagtest, `walk` existiert, löst dein Problem und ist gut getestet. Warum also eine Lösung selbst machen, die wohl kaum besser ist aber mit mehr Arbeitsaufwand verbunden ist?bogomip hat geschrieben:Ich hab hier im Forum schon was gefunden aber das war wenig hilfreich. Die walk-Funktion ist mir ebenso bekannt, ich möchte es aber lieber selbst bewerkstelligen.
Hmpf, dafür brauchst du auf jedenfall os.listdir, isdir, isfile und njoa...
"walk" nachbauen hat aber keinen echten Lerneffekt. Dann verbessere lieber das eigentliches Programm um weitere Funktionalität. Da lernst du mehr und es macht auch noch Spaß.bogomip hat geschrieben:Der Lerneffekt
Ich versuch mich jetzt einfach mal...
Pseudocode für die rekurive Funktion!?!:
mfg
Zack
Pseudocode für die rekurive Funktion!?!:
Code: Alles auswählen
import glob, os
def do_something(directory="./"):
for filename in glob.glob(directory + '/*'):
absPath = os.path.abspath(filename)
if os.path.isdir(absPath):
do_something(absPath)
else:
print absPath, os.path.getsize(absPath)
pass
do_something("C://RECYCLER")
Zack