Seite 1 von 1

Eine Serie von Dateien manipulieren

Verfasst: Montag 17. Dezember 2007, 19:29
von bogomip
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 :)

Re: Eine Serie von Dateien manipulieren

Verfasst: Montag 17. Dezember 2007, 19:48
von Leonidas
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.
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?

Re: Eine Serie von Dateien manipulieren

Verfasst: Montag 17. Dezember 2007, 20:17
von gerold
bogomip hat geschrieben:Die walk-Funktion
Hallo bogomip!

Nimm ``os.walk``!

mfg
Gerold
:-)

Re: Eine Serie von Dateien manipulieren

Verfasst: Montag 17. Dezember 2007, 20:33
von bogomip
Leonidas hat geschrieben:
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.
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?
Der Lerneffekt :)

Verfasst: Montag 17. Dezember 2007, 20:37
von BlackVivi
Hmpf, dafür brauchst du auf jedenfall os.listdir, isdir, isfile und njoa...

Re: Eine Serie von Dateien manipulieren

Verfasst: Montag 17. Dezember 2007, 20:40
von EyDu
bogomip hat geschrieben:Der Lerneffekt :)
"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ß.

Verfasst: Dienstag 18. Dezember 2007, 12:25
von Zack
Ich versuch mich jetzt einfach mal...

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")
mfg
Zack