Bonsoir,
je viens de créer une fonction qui
1) demande d'entrer 6 données afin d'y former une liste
2) ajoute cette liste dans un fichier d'entré de données
3) sauvegarde la 3eme valeur de ligne afin d'y créer un fichier txt avec ce nom (si le fichier en question n'existe pas déjà)
4) supprime la 3ème, 4ème et 5ème valeure de la liste
5) joint les élément restants de la liste en une nouvelle liste et ajoute cette nouvelle liste dans le fichier créé à partir de l'element sauvegardé
En admetant que je rajoute plusieurs liste dans le fichier d'entré ou dans les différents fichier créé, je voudrais que ces listes soient triées en fonction de la date (élément 1 de la liste) et de l'heure (élément 2 de la liste)
date est au format jj/mm/aaaa
heure est au format hh/mm
le fichier 'essai ajouter listes.txt' contient
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 def ajout_listes(fichie_source): # Demande à l'utilisateur de rentrer la date, l'heure, l'importance, l'événement, act, prévue et précédent date = input("Entrez la date (jj/mm/aaaa) : ") heure = input("Entrez l'heure (hh:mm) : ") devise = input("Entrez la devise : ") importance = input("Entrez l'importance (1 à 3) : ") evenement = input("Entrez l'événement : ") act = input("Entrez la valeure actuelle : ") prevue = input("Entrez la valeure prévue : ") precedent = input("Entrez la valeure précédente : ") # Création de la liste à partir des données entrées par l'utilisateur new_list = [date, heure, devise, importance, evenement, act, prevue, precedent] ligne = ' '.join(new_list) with open(fichie_source, 'a') as f_s: # Écrivez la nouvelle ligne dans le fichier f_s.write(ligne + '\n') # Recuperer la lettre correspondant au fichier even = new_list[4] # Enlever le champs "devise", "importance", et "evenement" de la liste del new_list[2] del new_list[2] del new_list[2] # Réassemblez la ligne en utilisant join new_line = ' '.join(new_list) # Ouvrez le fichier 'evenement' en mode 'a' with open(even + '.txt', 'a') as f_e: # Écrivez la nouvelle ligne dans le fichier f_e.write(new_line + '\n') ajout_listes('essai ajouter listes.txt')
15/02/2023 10:30 jpy 3 ploi 15 12 14
14/05/2024 20:30 jpy 2 ploi 15 16 14
25/06/2024 20:30 jpy 3 ploi 20 21 23
01/01/2025 23:10 jpy 3 ploi 20 30 40
20/04/2024 20:15 jpy 2 ploi 14 25 36
02/03/2026 20:10 jpy 3 ploi 20 30 10
02/02/2026 20:30 jpy 2 ploi 15 25 35
04/04/2027 20:35 jpy 1 ploi 51 52 53
03/03/2023 20:30 jpy 2 ploi 25 14 14
J'ai beau chercher pendant des heures, je n'arrive pas à faire en sorte que les listes sortent triées an fonction de la date et de l'heure les plus récents en haut.
Même avec ce bout de code à la fin ça ne donne rien.
merci de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 # Lecture du contenu du fichier 'even' with open(even + '.txt', 'r') as f_e: lines = f_e.readlines() # trier les lignes en fonction de la date et de l'heure lines = sorted(lines, key=lambda x: datetime.strptime(x.split()[0] + ' ' + x.split()[1], '%d/%m/%Y %H:%M')) # Réécrire les lignes triées dans le fichier with open(even + '.txt', 'w') as f_e: f_e.writelines(lines)
Partager