Wie kann ich alle Dateien eines Verzeichnisses auflisten?

Wie kann ich in Python alle Dateien eines Verzeichnisses auflisten und zu einer "Liste" hinzufügen?

os.listdir() liefert Ihnen alles, was sich in einem Verzeichnis befindet - Dateien und Verzeichnisse.

Wenn Sie nur Dateien wollen, können Sie dies entweder mit os.path filtern:

from os import listdir
from os.path import isfile, join
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]

oder du könntest os.walk() verwenden, was zwei Listen für jedes besuchte Verzeichnis liefert - und zwar in Dateien und Verzeichnisse für dich aufteilt. Wenn Sie nur das oberste Verzeichnis haben wollen, können Sie einfach das erste Mal abbrechen, wenn es folgende Ergebnisse liefert

from os import walk

f = []
for (dirpath, dirnames, filenames) in walk(mypath):
    f.extend(filenames)
    break
Kommentare (6)

Ich bevorzuge die Verwendung des Moduls glob, da es den Mustervergleich und die Expansion übernimmt.

import glob
print(glob.glob("/home/adam/*.txt"))

Es gibt eine Liste mit den abgefragten Dateien zurück:

['/home/adam/file1.txt', '/home/adam/file2.txt', .... ]
Kommentare (4)
import os
os.listdir("somedirectory")

gibt eine Liste aller Dateien und Verzeichnisse in "somedirectory" zurück.

Kommentare (3)