Hi Hi ich suche nach einer Möglichkeit die Anzahl der Dateien in einem Verzeichnis zu ermitteln.
Mit os.walk() funktioniert es auch jedoch sehr langsam.
ich benötige eine funktion die in etwa so schnell wie Eigenschaften eines Verzeichnisses unter Windows ist.
ich hoffe jemand hat einen rat
mfg soma
Anzahl von Dateien in einem Verzeichnis
Hilft das?
Ist halt nicht rekursiv.
HTH,
Gerald
Code: Alles auswählen
>>> len( os.listdir( "." ) )
259
HTH,
Gerald
... os.listdir() listet leider auch Unterverzeichnisse mit auf.Gromit hat geschrieben:Code: Alles auswählen
>>> len( os.listdir( "." ) ) 259
Man müsste die Elemente der Liste noch auf os.path.isfile() prüfen.
Sowas in der Art z.B:
Code: Alles auswählen
>>> directory = r'd:\work'
>>> os.listdir(directory)
['demo.txt', 'Masaru.gif', 'Python']
>>>
>>> files = [ elem for elem in os.listdir(directory) if os.path.isfile(os.path.join(directory, elem)) ]
>>> files
['demo.txt', 'Masaru.gif']
>>> len(files)
2
Habe ein wenig rumprobiert und bin bei meiner WinXP Machine auf das Phänomen gestoßen, dass os.walk und die os.listdir List Comprehension annährend gleich schnell sind ... jedoch os.walk "manchmal" doppelt so lange braucht.
Ich würde deswegen vielleicht die os.listdir Variante vorziehen.
Tip.: Anstelle von "." (aktuelles Arbeitsverzeichnis) kann man mit Python geschickter auch die Platformübergreifende 'os.getcwd()' Methode verwenden.
>>Masa<<