Erhalten von nach Erstellungsdatum sortierten Verzeichniseinträgen mit Python
Beim Navigieren in einem Verzeichnis besteht häufig die Notwendigkeit, 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 Vorgang:
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 mit Ausnahme aller Verzeichnisse. Die Funktion glob.glob() ermöglicht bei Bedarf eine flexiblere Dateinamenübereinstimmung.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3