"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je obtenir une liste triée de fichiers dans un répertoire par date de création à l'aide de Python ?

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

Publié le 2024-11-16
Parcourir:117

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

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

Lors de la navigation dans un annuaire, 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))

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 créés les plus récemment 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))

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

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3