Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich mit Python eine sortierte Liste der Dateien in einem Verzeichnis nach Erstellungsdatum erhalten?

Wie kann ich mit Python eine sortierte Liste der Dateien in einem Verzeichnis nach Erstellungsdatum erhalten?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-09 12:02:02824Durchsuche

How can I get a sorted list of files in a directory by creation date using Python?

Verzeichniseinträge sortiert nach Erstellungsdatum mit Python abrufen

Beim Navigieren in einem Verzeichnis besteht oft der Bedarf, eine Liste seiner Inhalte sortiert zu erhalten nach bestimmten Kriterien, wie zum Beispiel dem Erstellungsdatum. In Python kann diese Aufgabe problemlos erledigt werden.

Vorgeschlagener Ansatz:

Um dies zu erreichen, ist eine Kombination aus Pythons integrierten Dateisystem-Manipulationsmodulen und einer Sortierfunktion erforderlich beschäftigt. Der folgende Codeausschnitt veranschaulicht diesen Prozess:

import glob
import os

search_dir = "/mydir/"
files = [os.path.join(search_dir, f) for f in os.listdir(search_dir) if os.path.isfile(f)]
files.sort(key=lambda x: os.path.getmtime(x))

Dieser Codeausschnitt beginnt mit dem Abrufen einer Liste aller Dateien im angegebenen Verzeichnis mithilfe von os.listdir(). Anschließend werden alle Nicht-Dateielemente (z. B. Verzeichnisse, Links) mithilfe von os.path.isfile() herausgefiltert. Um korrekte Dateipfade sicherzustellen, wird jedem Dateinamen der Suchverzeichnispfad vorangestellt.

Die Dateien werden dann mithilfe der Funktion os.path.getmtime() nach ihrer Änderungszeit sortiert. Diese Funktion gibt den Zeitpunkt der letzten Änderung einer Datei im numerischen Format zurück. Durch die Übergabe dieser Funktion als Schlüsselargument an die Funktion sorted() werden die Dateien in chronologischer Reihenfolge angeordnet, wobei die zuletzt erstellten Dateien zuerst angezeigt werden.

Alternativer Ansatz:

Ein alternativer Ansatz besteht darin, das Glob-Modul zu verwenden, um die Dateien zu filtern und eine Liste absoluter Dateipfade zu erhalten:

import glob
import os

search_dir = "/mydir/"
# This glob will look for all files and exclude any directories
files = [f for f in glob.glob(f"{search_dir}/**", recursive=True) if os.path.isfile(f)]
files.sort(key=lambda x: os.path.getmtime(x))

Dieser Code durchsucht im Wesentlichen den gesamten Inhalt des angegebenen Verzeichnisses und seiner Unterverzeichnisse, einschließlich aller Dateien und Ausschluss aller Verzeichnisse. Die Funktion glob.glob() ermöglicht bei Bedarf einen flexibleren Dateinamenabgleich.

Das obige ist der detaillierte Inhalt vonWie kann ich mit Python eine sortierte Liste der Dateien in einem Verzeichnis nach Erstellungsdatum erhalten?. 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