Re: Liste ordonnée du contenu d'un répertoire
Bonjour,
Il faut commencer par récupérer la liste des noms de fichiers par
os.listdir, puis faire un sort() sur cette liste en donnant comme
argument de sort() une fonction qui compare deux valeurs
Pour un tri alphabétique, cette valeur est le nom du fichier (ou le
nom en minuscule si on veut que les A et les a apparaissent ensemble,
et pas les A après les z)
Pour un tri par date de création, la valeur est la date de création,
qu'on obtient par os.stat(nom_fichier).st_ctime (nom_fichier est le
nom complet, répertoire compris)
Voilà ce que ça donne :
==============
import os
def tri_alpha(rep):
# tri par ordre alphabetique
files = os.listdir(rep)
files.sort(lambda x,y:cmp(x.lower(),y.lower()))
return files
def compare_date_creation(f1,f2):
# fonction de comparaison de dates de création
d1 = os.stat(f1).st_ctime
d2 = os.stat(f2).st_ctime
return cmp(d1,d2)
def tri_date_creation(rep):
files = os.listdir(rep)
# nom complet y compris repertoire
files = [os.path.join(rep,f) for f in files]
files.sort(compare_date_creation)
# enlever le nom du repertoire
return [ os.path.basename(f) for f in files ]
print tri_alpha(os.getcwd())
print tri_date_creation(os.getcwd())
=========================
A+
Pierre
|