Skip to content

Python: Boosten Sie die Effizienz Ihrer Verzeichnisliste, indem Sie alle Dateien in einem Verzeichnis abrufen

Updated on

Python, eine vielseitige und leistungsstarke Programmiersprache, wird für verschiedene Aufgaben verwendet, darunter die Verwaltung von Dateien und Verzeichnissen. Eine häufige Aufgabe, mit der Python-Entwickler häufig konfrontiert sind, besteht darin, alle Dateien in einem Verzeichnis aufzulisten. In diesem Artikel erfahren Sie, wie Sie Python verwenden, um alle Dateien in einem Verzeichnis abzurufen, mit Schwerpunkt auf der Verwendung der os.listdir Funktion und wie Sie sie effektiv einsetzen.

Die os.listdir Funktion ist Teil des os-Moduls von Python, das eine portable Möglichkeit bietet, funktionenabhängige Funktionen des Betriebssystems zu verwenden. Es ermöglicht Ihnen, alle Dateien und Verzeichnisse im angegebenen Verzeichnis aufzulisten. Dabei geht es jedoch nicht nur um das Auflisten von Dateien. Wir werden auch untersuchen, wie Sie diese Ergebnisse filtern, Verzeichnisse rekursiv auflisten und mit verschiedenen Dateitypen wie JSON und CSV arbeiten können.

Möchten Sie schnell eine Datenvisualisierung aus einem Python Pandas-Datensatz ohne Code erstellen?

PyGWalker ist eine Python-Bibliothek für explorative Datenanalyse mit Visualisierung. PyGWalker (opens in a new tab) kann Ihren Workflow zur Datenanalyse und Datenvisualisierung mit Jupyter Notebook vereinfachen, indem Ihr Pandas-Datensatz (und Polars-Datensatz) in eine tableauähnliche Benutzeroberfläche für die visuelle Exploration umgewandelt wird.

PyGWalker für Datenvisualisierung (opens in a new tab)

1. Verwendung von os.listdir, um alle Dateien in einem Verzeichnis abzurufen

Die os.listdir Funktion ist ein einfaches, aber leistungsstarkes Werkzeug im Arsenal von Python. Sie gibt eine Liste zurück, die die Namen der Einträge im angegebenen Pfadverzeichnis enthält. Hier ist ein grundlegendes Beispiel, wie Sie os.listdir verwenden können:

import os
 
def dateien_auflisten(verzeichnis):
    return os.listdir(verzeichnis)
 
print(dateien_auflisten('/Pfad/zu/Ihrem/Verzeichnis'))

Dies gibt eine Liste aller Dateien und Verzeichnisse im angegebenen Verzeichnis aus. Es ist jedoch wichtig zu beachten, dass os.listdir keine Dateien rekursiv auflistet, d.h. es listet nicht die Dateien in den Unterverzeichnissen des angegebenen Verzeichnisses auf. Wie man Dateien rekursiv auflistet, werden wir im nächsten Abschnitt behandeln.

2. Rekursives Auflisten von Dateien und Verzeichnissen

Um Dateien und Verzeichnisse rekursiv aufzulisten, d.h. alle Dateien in allen Unterverzeichnissen einzuschließen, können wir die os.walk Funktion verwenden. Die os.walk Funktion generiert die Dateinamen in einem Verzeichnisbaum, indem sie den Baum entweder von oben nach unten oder von unten nach oben durchläuft.

Hier ist, wie Sie os.walk verwenden können, um alle Dateien in einem Verzeichnis und seinen Unterverzeichnissen aufzulisten:

import os
 
def dateien_rekursiv_auflisten(verzeichnis):
    for verzeichnisname, ordner, dateien in os.walk(verzeichnis):
        for datei in dateien:
            print(os.path.join(verzeichnisname, datei))
 
dateien_rekursiv_auflisten('/Pfad/zu/Ihrem/Verzeichnis')

Dies gibt die Pfade zu allen Dateien im angegebenen Verzeichnis aus, einschließlich derer in seinen Unterverzeichnissen. Der Teil os.path.join(verzeichnisname, datei) wird verwendet, um den vollständigen Pfad zur Datei zu erhalten.

3. Filtern von Dateien nach Erweiterung

In einigen Fällen möchten Sie möglicherweise nur Dateien eines bestimmten Typs auflisten, d.h. Dateien mit einer bestimmten Erweiterung. Beispielsweise möchten Sie möglicherweise nur JSON- oder CSV-Dateien auflisten. Dies können Sie tun, indem Sie eine einfache Bedingung zum Dateilistungscode hinzufügen:

import os
 
def dateien_nach_erweiterung_auflisten(verzeichnis, erweiterung):
    for verzeichnisname, ordner, dateien in os.walk(verzeichnis):
        for datei in dateien:
            if datei.endswith(erweiterung):
                print(os.path.join(verzeichnisname, datei))
 
dateien_nach_erweiterung_auflisten('/Pfad/zu/Ihrem/Verzeichnis', '.json')

Dies gibt die Pfade zu allen JSON-Dateien im angegebenen Verzeichnis und seinen Unterverzeichnissen aus. Sie können diesen Code problemlos anpassen, um Dateien mit einer beliebigen anderen Erweiterung aufzulisten, z.B. '.csv' für CSV-Dateien.

Im nächsten Teil des Artikels werden wir besprechen, wie man bestimmte Dateitypen wie Bilder auflistet.

4. Auflisten bestimmter Dateitypen: Bilder und Videos

Oftmals müssen Sie bestimmte Dateitypen, wie z.B. Bilder oder Videos, in einem Verzeichnis auflisten. Python bietet eine einfache Möglichkeit, dies zu tun, indem Sie die Dateierweiterung überprüfen. Hier ist, wie Sie alle Bilddateien in einem Verzeichnis auflisten können:

import os
 
def bild_dateien_auflisten(verzeichnis):
    for verzeichnisname, ordner, dateien in os.walk(verzeichnis):
        for datei in dateien:
            if datei.endswith(('.jpg', '.png', '.jpeg')):
                print(os.path.join(verzeichnisname, datei))
 
bild_dateien_auflisten('/Pfad/zu/Ihrem/Verzeichnis')

Dies gibt die Pfade zu allen Bilddateien (JPEG und PNG) im angegebenen Verzeichnis und seinen Unterverzeichnissen aus. Sie können diesen Code problemlos anpassen, um Dateien mit einer beliebigen anderen Erweiterung, wie z.B. '.mp4' oder '.avi' für Videodateien, aufzulisten.

Ähnlich können Sie für Videos den gleichen Ansatz verwenden, jedoch mit Video-Dateierweiterungen:

import os
 
def video_dateien_auflisten(verzeichnis):
    for verzeichnisname, ordner, dateien in os.walk(verzeichnis):
        for datei in dateien:
            if datei.endswith(('.mp4', '.avi', '.mov')):
                print(os.path.join(verzeichnisname, datei))
 
video_dateien_auflisten('/Pfad/zu/Ihrem/Verzeichnis')

Dies listet alle Video-Dateien (MP4, AVI und MOV) im angegebenen Verzeichnis und seinen Unterverzeichnissen auf. Dieser Ansatz ist äußerst flexibel und kann angepasst werden, um jeden Dateityp aufzulisten, indem die Dateierweiterungen in der endswith Methode geändert werden.

5. Erweiterte Verzeichnisliste: Filtern und Verwendung von Generative AI-Techniken

Die eingebauten Funktionen von Python zur Verzeichnisauflistung sind ziemlich leistungsstark, aber es gibt auch viele Bibliotheken und Tools von Drittanbietern, die Ihnen bei fortgeschritteneren Aufgaben helfen können. Zum Beispiel möchten Sie vielleicht Ihre Suchergebnisse basierend auf bestimmten Kriterien filtern oder generative KI-Techniken verwenden, um einige Aspekte des Verzeichnisauflistungsprozesses zu automatisieren.

Ein solches Tool ist das glob-Modul, das eine Funktion zur Erstellung von Dateilisten aus Verzeichnis-Wildcardsuchen bietet. Dies kann besonders nützlich sein, wenn Sie Dateien auflisten möchten, die einem bestimmten Muster entsprechen. Hier ist ein Beispiel:

import glob
 
def liste_dateien_mit_muster(directory, pattern):
    return glob.glob(f'{directory}/{pattern}')
 
print(liste_dateien_mit_muster('/pfad/zum/verzeichnis', '*.json'))

Dies gibt eine Liste aller JSON-Dateien im angegebenen Verzeichnis aus. Sie können das Muster problemlos anpassen, um andere Dateitypen anzupassen.

Was generative KI betrifft, handelt es sich um ein sich schnell entwickelndes Gebiet mit vielen potenziellen Anwendungen in der Verzeichnisauflistung. Sie könnten zum Beispiel ein generatives KI-Modell verwenden, um die Arten von Dateien in einem Verzeichnis aufgrund ihres Namens oder anderer Metadaten vorherzusagen oder um beschreibende Tags für Dateien basierend auf ihrem Inhalt zu generieren. Diese sind jedoch fortgeschrittene Themen, die den Rahmen dieses Artikels sprengen.

Fazit und weiterführende Lektüre

In diesem Artikel haben wir eine Menge Themen behandelt, wie Sie Python verwenden können, um alle Dateien in einem Verzeichnis zu erhalten. Wir haben uns die grundlegende Funktion os.listdir angesehen, wie man Dateien mit os.walk rekursiv auflistet, wie man Dateien nach Erweiterung filtert und wie man bestimmte Dateitypen wie Bilder und Videos auflistet. Wir haben auch einige fortgeschrittene Themen angeschnitten, wie die Verwendung des glob-Moduls für Mustervergleiche und die potenziellen Anwendungen von generativer KI in der Verzeichnisauflistung.

Aber es gibt immer noch viel zu lernen! Wenn Sie sich weiter in diese Themen vertiefen möchten, empfehle ich Ihnen, die offizielle Python-Dokumentation sowie Ressourcen wie Stack Overflow und Towards Data Science zu konsultieren. Und natürlich ist der beste Weg zu lernen, indem man es selbst ausprobiert, also zögern Sie nicht, diese Techniken in Ihren eigenen Projekten auszuprobieren.

FAQs

Wie liste ich alle Dateien in einem Verzeichnis mit Python auf?

Sie können die Funktion os.listdir verwenden, um alle Dateien in einem Verzeichnis aufzulisten. Diese Funktion gibt eine Liste mit den Namen der Einträge im angegebenen Verzeichnis zurück.

Was ist die Syntax für die Verwendung von os.listdir?

Die Syntax für die Verwendung von os.listdir ist ziemlich einfach. Sie müssen nur das Modul os importieren und dann os.listdir(path) aufrufen, wobei path der Pfad zum zu listenen Verzeichnis ist.

Kann ich die Ergebnisse von os.listdir filtern, um nur Dateien mit bestimmten Erweiterungen anzuzeigen?

Ja, Sie können die Ergebnisse von os.listdir filtern, um nur Dateien mit bestimmten Erweiterungen anzuzeigen. Sie können dies tun, indem Sie eine Bedingung hinzufügen, die überprüft, ob der Dateiname mit der gewünschten Erweiterung endet.