1
2
3
4
5
6
7
import os
def get_files_sorted_by_date(path):
files = [(os.path.join(path, f), os.stat(os.path.join(path, f)).st_mtime)
for f in os.listdir(path)]
files.sort(key=lambda x: x[1])
return [f[0] for f in files if os.path.isfile(f[0])], [f[0] for f in files if os.path.isdir(f[0])]
Dans cet algorithme, nous utilisons le module os
pour accéder aux fichiers et dossiers présents dans le chemin spécifié. Nous utilisons la fonction listdir()
pour obtenir une liste des noms de fichiers et de dossiers présents dans le chemin spécifié. Ensuite, nous utilisons la fonction stat()
pour récupérer la date de modification de chaque fichier et dossier, et stockons ces informations dans une liste de tuples contenant le nom de chaque fichier et dossier ainsi que sa date de modification.
Nous utilisons ensuite la fonction sort()
de la liste pour trier la liste de tuples par ordre croissant de date de modification en utilisant une fonction lambda. Enfin, nous séparons la liste triée en deux listes, l’une contenant les noms de fichiers et l’autre contenant les noms de dossiers.
Vous pouvez appeler cette fonction en spécifiant le chemin pour lequel vous souhaitez trier les fichiers et dossiers, comme suit :
1
2
3
files, dirs = get_files_sorted_by_date('/chemin/vers/le/dossier')
print('Fichiers triés par date :', files)
print('Dossiers triés par date :', dirs)
Résultat une liste des noms de fichiers et de dossiers triés par date de modification pour un chemin spécifique.
1
2
3
4
5
6
7
8
9
10
11
12
import os
import json
from datetime import datetime
def get_files_sorted_by_date_json(path):
files = [(os.path.join(path, f), os.stat(os.path.join(path, f)).st_mtime)
for f in os.listdir(path)]
files.sort(key=lambda x: x[1])
files_dict = {'date_check': datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
'files': [f[0] for f in files if os.path.isfile(f[0])],
'dirs': [f[0] for f in files if os.path.isdir(f[0])]}
return json.dumps(files_dict, indent=4)
Dans cet algorithme, nous utilisons les mêmes méthodes pour obtenir la liste triée de fichiers et de dossiers que dans l’exemple précédent. Ensuite, nous créons un dictionnaire files_dict avec trois clés : “date”, “files” et “dirs”. La clé “date” contient la date et l’heure actuelles sous forme de chaîne de caractères. Les clés “files” et “dirs” contiennent les noms triés des fichiers et des dossiers respectivement.
Nous utilisons ensuite la fonction json.dumps() pour convertir le dictionnaire en une chaîne JSON formatée avec une indentation de 4 espaces.
Vous pouvez appeler cette fonction en spécifiant le chemin pour lequel vous souhaitez trier les fichiers et dossiers, comme suit :
1
2
result_json = get_files_sorted_by_date_json('/chemin/vers/le/dossier')
print(result_json)
Résultat une chaîne JSON formatée contenant la date actuelle du check et les noms triés des fichiers et des dossiers.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import os
import json
from datetime import datetime
def get_files_sorted_by_date_json(path):
files = [(os.path.join(path, f), os.stat(os.path.join(path, f)).st_mtime)
for f in os.listdir(path)]
files.sort(key=lambda x: x[1])
files_dict = {'date_check': datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
'files': [],
'dirs': []}
for file in files:
if os.path.isfile(file[0]):
files_dict['files'].append({'name': file[0], 'date': datetime.fromtimestamp(file[1]).strftime('%Y-%m-%d %H:%M:%S')})
elif os.path.isdir(file[0]):
files_dict['dirs'].append({'name': file[0], 'date': datetime.fromtimestamp(file[1]).strftime('%Y-%m-%d %H:%M:%S')})
return json.dumps(files_dict, indent=4)
Dans cet algorithme, nous utilisons les mêmes méthodes pour obtenir la liste triée de fichiers et de dossiers que dans les exemples précédents. Ensuite, nous créons un dictionnaire files_dict
avec trois clés : “date”, “files” et “dirs”. La clé “date” contient la date et l’heure actuelles sous forme de chaîne de caractères. Les clés “files” et “dirs” contiennent chacune une liste de dictionnaires, chaque dictionnaire contenant les informations sur un fichier ou un dossier.
Dans la boucle for, nous parcourons chaque élément de la liste triée et vérifions s’il s’agit d’un fichier ou d’un dossier. Si c’est un fichier, nous ajoutons un dictionnaire contenant le nom et la date de modification du fichier à la liste files_dict['files']
. Si c’est un dossier, nous ajoutons un dictionnaire contenant le nom et la date de modification du dossier à la liste files_dict['dirs']
.
Nous utilisons ensuite la fonction json.dumps()
pour convertir le dictionnaire en une chaîne JSON formatée avec une indentation de 4 espaces.
Vous pouvez appeler cette fonction en spécifiant le chemin pour lequel vous souhaitez trier les fichiers et dossiers, comme suit :
1
2
result_json = get_files_sorted_by_date_json('/chemin/vers/le/dossier')
print(result_json)
Résultat une chaîne JSON formatée contenant la date de modification pour chaque fichier et dossier trié par date.