Wie zähle ich nur die Dateien in einem Verzeichnis? Hier wird das Verzeichnis selbst als Datei gezählt:
len(glob.glob('*'))
Wie zähle ich nur die Dateien in einem Verzeichnis? Hier wird das Verzeichnis selbst als Datei gezählt:
len(glob.glob('*'))
os.listdir()
ist etwas effizienter als die Verwendung von glob.glob
. Um zu prüfen, ob ein Dateiname eine gewöhnliche Datei ist (und nicht ein Verzeichnis oder eine andere Entität), verwenden Sie os.path.isfile()
:
import os, os.path
# simple version for working with CWD
print len([name for name in os.listdir('.') if os.path.isfile(name)])
# path joining version for other paths
DIR = '/tmp'
print len([name for name in os.listdir(DIR) if os.path.isfile(os.path.join(DIR, name))])
Für alle Arten von Dateien, einschließlich Unterverzeichnissen:
import os
list = os.listdir(dir) # dir is your directory path
number_files = len(list)
print number_files
Nur Dateien (Vermeidung von Unterverzeichnissen):
import os
onlyfiles = next(os.walk(dir))[2] #dir is your directory path as string
print len(onlyfiles)
An dieser Stelle ist fnmatch sehr nützlich:
import fnmatch
print len(fnmatch.filter(os.listdir(dirpath), '*.txt'))
Weitere Einzelheiten: http://docs.python.org/2/library/fnmatch.html
Wenn Sie alle Dateien im Verzeichnis zählen wollen - einschließlich der Dateien in Unterverzeichnissen -, ist der pythonischste Weg:
import os
file_count = sum(len(files) for _, _, files in os.walk(r'C:\Dropbox'))
print(file_count)
Wir verwenden eine Summe, die schneller ist als die explizite Addition der Dateizahlen (Zeitangaben stehen noch aus)
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.