""" J'ai un fichier qui contient une liste de date ecrite au format J-M-AAAA qui s'appele date.txt J'ai dans le meme repertoire plusieur autre fichier qui contienne des donnée au format J-M-AAAA:X. 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. """ import os def lire_dates(fichier_dates): with open(fichier_dates, 'r') as file: dates = [line.strip() for line in file] return dates def verifier_dates(dates, repertoire): fichiers = [f for f in os.listdir(repertoire) if os.path.isfile(os.path.join(repertoire, f))] for fichier in fichiers: if fichier != 'date.txt' and fichier != 'test.py': # Ignorer le fichier de dates lui-même with open(os.path.join(repertoire, fichier), 'r') as file: donnees = [line.split(':')[0].strip() for line in file] for date in dates: if date not in donnees: print(f"La date {date} n'est pas présente dans le fichier {fichier}.") def ajouter_dates_manquantes(dates, repertoire): fichiers = [f for f in os.listdir(repertoire) if os.path.isfile(os.path.join(repertoire, f)) and f != 'test.py'] for fichier in fichiers: chemin_fichier = os.path.join(repertoire, fichier) with open(chemin_fichier, 'r') as file: lignes = file.readlines() donnees = [line.split(':')[0].strip() for line in lignes] dernier_index = -1 for i, date in enumerate(dates): if date not in donnees: if dernier_index != -1 and dernier_index < len(donnees): # Vérification supplémentaire avant d'accéder à l'indice if dernier_index < len(lignes) and lignes[dernier_index].count(':') > 0: valeur = lignes[dernier_index].split(':')[1].strip() else: valeur = 'valeur_par_defaut' nouvelle_ligne = f"{date}:{valeur}\n" else: nouvelle_ligne = f"{date}:valeur_par_defaut\n" lignes.append(nouvelle_ligne) # Mettez à jour dernier_index uniquement si la date est trouvée dans donnees dernier_index = donnees.index(date) if date in donnees else dernier_index with open(chemin_fichier, 'w') as file: file.writelines(lignes) if __name__ == "__main__": fichier_dates = 'date.txt' repertoire = '.' # Utilisez le chemin absolu si nécessaire dates = lire_dates(fichier_dates) verifier_dates(dates, repertoire) ajouter_dates_manquantes(dates, repertoire)