Comment puis-je obtenir une liste triée de fichiers dans un répertoire par date de création à l'aide de Python ?

Mary-Kate Olsen
Libérer: 2024-11-09 12:02:02
original
770 Les gens l'ont consulté

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

Obtention des listes d'annuaire triées par date de création à l'aide de Python

Lors de la navigation dans un répertoire, il est souvent nécessaire d'obtenir une liste de son contenu trié selon des critères précis, comme la date de création. En Python, cette tâche peut être accomplie facilement.

Approche suggérée :

Pour y parvenir, une combinaison de modules de manipulation du système de fichiers intégrés à Python et d'une fonction de tri est employé. L'extrait de code suivant illustre ce processus :

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))
Copier après la connexion

Cet extrait de code commence par obtenir une liste de tous les fichiers du répertoire spécifié à l'aide de os.listdir(). Par la suite, tous les éléments non-fichiers (par exemple, répertoires, liens) sont filtrés à l'aide de os.path.isfile(). Pour garantir des chemins de fichiers corrects, chaque nom de fichier est préfixé par le chemin du répertoire de recherche.

Les fichiers sont ensuite triés en fonction de leur heure de modification à l'aide de la fonction os.path.getmtime(). Cette fonction renvoie l'heure de la dernière modification d'un fichier au format numérique. En passant cette fonction comme argument clé à la fonction sorted(), les fichiers sont classés par ordre chronologique, les fichiers les plus récemment créés apparaissant en premier.

Approche alternative :

Une approche alternative consiste à utiliser le module glob pour filtrer les fichiers et obtenir une liste de chemins de fichiers absolus :

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))
Copier après la connexion

Ce code recherche essentiellement tout le contenu du répertoire spécifié et ses sous-répertoires, y compris tous fichiers et à l’exclusion de tout répertoire. La fonction glob.glob() permet une correspondance plus flexible des noms de fichiers si nécessaire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal