os.listdir os.path.abspath 2.4 auf Linux Überraschung
Verfasst: Freitag 8. September 2006, 21:26
liste=os.listdir(os.getcwd()) macht brav den Inhalt des cwd in liste.
bei for datei in liste macht os.path.abspath(datei) auch den Pfad richtig.
Gebe ich oben aber os.listdir(UNTERVERZEICHNIS) mit, enthält liste auch tatsächlich den Inhalt von UNTERVERZEICHNIS. os.path.abspath klatscht nun aber vor den Dateinamen den absoluten Pfad des cwd - das UNTERVERZEICHNIS fehlt im Pfad.
Heißt das, daß os.path.abspath(datei) nix anderes tut, als den absoluten Pfad des Arbeitsverzeichnisses mit datei zu verbinden? Das wäre mager. Andererseits müßte sich der Interpreter sonst auf Verdacht inodes oder Verzeichnisbäume merken.
Gibt es einen geschickteren Weg, wenn man mit einer Masse Dateien in massig Verzeichnissen umgehen muß?
Das Rad selbst mit eigenen Variablen und Listen zu erfinden, wäre ja wohl nicht python-standesgerecht.
os.walk scheint mir doch ein bissi starr und viel Overhead.
BTW: Taucht der name walk tatsächlich in os und os.path auf. Dann hätte mein dickes tolles Python-Buch nämlich einen Fehler.
bei for datei in liste macht os.path.abspath(datei) auch den Pfad richtig.
Gebe ich oben aber os.listdir(UNTERVERZEICHNIS) mit, enthält liste auch tatsächlich den Inhalt von UNTERVERZEICHNIS. os.path.abspath klatscht nun aber vor den Dateinamen den absoluten Pfad des cwd - das UNTERVERZEICHNIS fehlt im Pfad.
Heißt das, daß os.path.abspath(datei) nix anderes tut, als den absoluten Pfad des Arbeitsverzeichnisses mit datei zu verbinden? Das wäre mager. Andererseits müßte sich der Interpreter sonst auf Verdacht inodes oder Verzeichnisbäume merken.
Gibt es einen geschickteren Weg, wenn man mit einer Masse Dateien in massig Verzeichnissen umgehen muß?
Das Rad selbst mit eigenen Variablen und Listen zu erfinden, wäre ja wohl nicht python-standesgerecht.
os.walk scheint mir doch ein bissi starr und viel Overhead.
BTW: Taucht der name walk tatsächlich in os und os.path auf. Dann hätte mein dickes tolles Python-Buch nämlich einen Fehler.