Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich mit Python effizient nur Dateien in einem Verzeichnis auflisten?

Wie kann ich mit Python effizient nur Dateien in einem Verzeichnis auflisten?

DDD
DDDOriginal
2025-01-01 12:31:11856Durchsuche

How Can I Efficiently List Only Files in a Directory Using Python?

Dateien aus einem Verzeichnis abrufen

Das Abrufen der Dateiliste eines Verzeichnisses ist eine häufige Aufgabe in der Python-Programmierung. Eine Möglichkeit hierfür ist die Verwendung von os.listdir(), das alle Elemente in einem Verzeichnis zurückgibt, einschließlich Dateien und Verzeichnissen.

Ansatz 1: Verwendung von os.path.isfile()

Um nur Dateien aufzulisten, verwenden Sie os.path.isfile():

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

Ansatz 2: Mit os.walk()

os.walk() iteriert über ein Verzeichnis und seine Unterverzeichnisse und gibt für jedes besuchte Verzeichnis ein Tupel zurück. Dieses Tupel enthält drei Listen: eine für Dateien, eine für Verzeichnisse und eine für das aktuelle Verzeichnis selbst.

from os import walk
mypath = 'path/to/directory'
filenames = next(walk(mypath), (None, None, []))[2]  # [] if no files

Dieser Ansatz bietet eine vollständigere Darstellung der Verzeichnisstruktur. Um Dateien nur im aktuellen Verzeichnis aufzulisten, unterbrechen Sie die Schleife nach der ersten Iteration:

from os import walk

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

Das obige ist der detaillierte Inhalt vonWie kann ich mit Python effizient nur Dateien in einem Verzeichnis auflisten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn