| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- """
- 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)
|