Seite 1 von 1
					
				Anzahl von Dateien in einem Verzeichnis
				Verfasst: Sonntag 18. Juni 2006, 15:33
				von soma
				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
			 
			
					
				
				Verfasst: Sonntag 18. Juni 2006, 18:20
				von Gromit
				Hilft das?
Ist halt nicht rekursiv.
HTH,
Gerald
 
			 
			
					
				
				Verfasst: Sonntag 18. Juni 2006, 19:56
				von Masaru
				
... os.
listdir() listet leider auch Unterverzeichnisse mit auf.
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
Ob aber auch das nun "schnell" genug (oder mindestens schneller als os.
walk()) ist, müsstest man mal für sich austesten.
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<<