366 Stimmen

Wie man mit Python die Anzahl der Dateien in einem Verzeichnis zählt

Wie zähle ich nur die Dateien in einem Verzeichnis? Hier wird das Verzeichnis selbst als Datei gezählt:

len(glob.glob('*'))

1voto

Ismail Punkte 39

Ich habe eine andere Antwort gefunden, die als akzeptierte Antwort richtig sein könnte.

for root, dirs, files in os.walk(input_path):    
for name in files:
    if os.path.splitext(name)[1] == '.TXT' or os.path.splitext(name)[1] == '.txt':
        datafiles.append(os.path.join(root,name)) 

print len(files)

1voto

styler Punkte 11

Wenn Sie die Standard-Shell des Betriebssystems verwenden, können Sie das Ergebnis viel schneller erhalten als auf rein pythonischem Weg.

Beispiel für Windows:

import os
import subprocess

def get_num_files(path):
    cmd = 'DIR \"%s\" /A-D /B /S | FIND /C /V ""' % path
    return int(subprocess.check_output(cmd, shell=True))

1voto

Kinyugo Punkte 369

Eine einfache Utility-Funktion, die ich geschrieben habe, verwendet os.scandir() anstelle von os.listdir() .

import os 

def count_files_in_dir(path: str) -> int:
    file_entries = [entry for entry in os.scandir(path) if entry.is_file()]

    return len(file_entries)

Der Hauptvorteil besteht darin, dass der Bedarf an os.path.is_file() wird gestrichen und ersetzt durch os.DirEntry Instanz is_file() Damit entfällt auch die Notwendigkeit für os.path.join(DIR, file_name) wie in anderen Antworten gezeigt.

1voto

Mohit Dabas Punkte 2283
import os

total_con=os.listdir('<directory path>')

files=[]

for f_n in total_con:
   if os.path.isfile(f_n):
     files.append(f_n)

print len(files)

0voto

Maheep Punkte 489

Ich habe dieses Problem bei der Berechnung der Anzahl der Dateien in einem Google Drive-Verzeichnis durch Google Colab gelöst, indem ich mich in den Verzeichnisordner geleitet habe, indem ich

import os                                                                                                
%cd /content/drive/My Drive/  
print(len([x for x in os.listdir('folder_name/']))  

Normale Benutzer können versuchen

 import os                                                                                                     
 cd Desktop/Maheep/                                                     
 print(len([x for x in os.listdir('folder_name/']))

CodeJaeger.com

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.

Powered by:

X