test.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. """
  2. J'ai un fichier qui contient une liste de date ecrite au format J-M-AAAA qui s'appele date.txt
  3. J'ai dans le meme repertoire plusieur autre fichier qui contienne des donnée au format J-M-AAAA:X.
  4. J'aimerai un code python qui parcours toute les dates du fichiers dates et qui verifie qu'elle soit presente dans tout les fichier du repertoire.
  5. """
  6. import os
  7. def lire_dates(fichier_dates):
  8. with open(fichier_dates, 'r') as file:
  9. dates = [line.strip() for line in file]
  10. return dates
  11. def verifier_dates(dates, repertoire):
  12. fichiers = [f for f in os.listdir(repertoire) if os.path.isfile(os.path.join(repertoire, f))]
  13. for fichier in fichiers:
  14. if fichier != 'date.txt' and fichier != 'test.py': # Ignorer le fichier de dates lui-même
  15. with open(os.path.join(repertoire, fichier), 'r') as file:
  16. donnees = [line.split(':')[0].strip() for line in file]
  17. for date in dates:
  18. if date not in donnees:
  19. print(f"La date {date} n'est pas présente dans le fichier {fichier}.")
  20. def ajouter_dates_manquantes(dates, repertoire):
  21. fichiers = [f for f in os.listdir(repertoire) if os.path.isfile(os.path.join(repertoire, f)) and f != 'test.py']
  22. for fichier in fichiers:
  23. chemin_fichier = os.path.join(repertoire, fichier)
  24. with open(chemin_fichier, 'r') as file:
  25. lignes = file.readlines()
  26. donnees = [line.split(':')[0].strip() for line in lignes]
  27. dernier_index = -1
  28. for i, date in enumerate(dates):
  29. if date not in donnees:
  30. if dernier_index != -1 and dernier_index < len(donnees):
  31. # Vérification supplémentaire avant d'accéder à l'indice
  32. if dernier_index < len(lignes) and lignes[dernier_index].count(':') > 0:
  33. valeur = lignes[dernier_index].split(':')[1].strip()
  34. else:
  35. valeur = 'valeur_par_defaut'
  36. nouvelle_ligne = f"{date}:{valeur}\n"
  37. else:
  38. nouvelle_ligne = f"{date}:valeur_par_defaut\n"
  39. lignes.append(nouvelle_ligne)
  40. # Mettez à jour dernier_index uniquement si la date est trouvée dans donnees
  41. dernier_index = donnees.index(date) if date in donnees else dernier_index
  42. with open(chemin_fichier, 'w') as file:
  43. file.writelines(lignes)
  44. if __name__ == "__main__":
  45. fichier_dates = 'date.txt'
  46. repertoire = '.' # Utilisez le chemin absolu si nécessaire
  47. dates = lire_dates(fichier_dates)
  48. verifier_dates(dates, repertoire)
  49. ajouter_dates_manquantes(dates, repertoire)