import csv import sys # Fonction pour ouvrir et lire le fichier def lire_fichier(nom_fichier): try: # Ouvre le fichier en mode lecture with open(nom_fichier, 'r') as fichier: # Lit toutes les lignes du fichier lignes = fichier.readlines() return lignes except FileNotFoundError: print(f"Le fichier {nom_fichier} n'a pas été trouvé.") return None # Fonction pour extraire la colonne "Partkeepr" et ajouter "storageLocation" def extraire_colonne_partkeepr(lignes, nom_fichier_csv): # Recherche de l'index de la colonne "Partkeepr" entetes = lignes[0].strip().split('\t') try: indice_partkeepr = entetes.index('Partkeepr') except ValueError: print("La colonne 'Partkeepr' n'a pas été trouvée dans le fichier.") return None # Ajout de l'index pour la colonne "storageLocation" entetes.append('storageLocation') # Extrayez les valeurs de la colonne "Partkeepr" valeurs_partkeepr = [] for ligne in lignes[1:]: colonnes = ligne.strip().split('\t') # Vérifier si la ligne n'est pas vide et contient suffisamment de colonnes if colonnes and len(colonnes) > indice_partkeepr: partkeepr = colonnes[indice_partkeepr] # Rechercher dans le fichier CSV resultat_csv = rechercher_dans_csv(partkeepr, nom_fichier_csv) # Ajouter la storageLocation à la ligne colonnes.append(resultat_csv[1] if resultat_csv else '') valeurs_partkeepr.append([partkeepr, resultat_csv[1] if resultat_csv else '']) return entetes, valeurs_partkeepr # Fonction pour écrire dans le fichier texte def ecrire_dans_fichier_txt(entetes, valeurs, nom_fichier_entree): # Générer le nom du fichier de sortie nom_fichier_sortie = f"{nom_fichier_entree.split('.')[0]}_Localisation.txt" try: # Ouvre le fichier en mode écriture with open(nom_fichier_sortie, 'w') as fichier: # Écrit les entêtes fichier.write('\t'.join(['Partkeepr', 'storageLocation']) + '\n') # Écrit les valeurs for ligne in valeurs: fichier.write('\t'.join(map(str, ligne)) + '\n') print(f"Les données ont été ajoutées à {nom_fichier_sortie}.") except IOError: print(f"Erreur lors de l'écriture dans le fichier {nom_fichier_sortie}.") # Fonction pour rechercher dans le fichier CSV def rechercher_dans_csv(partkeepr, nom_fichier_csv): try: with open(nom_fichier_csv, 'r') as csv_file: csv_reader = csv.reader(csv_file) for row in csv_reader: if row[0] == partkeepr: return row print(f"Le Partkeepr {partkeepr} n'a pas été trouvé dans le fichier CSV.") return None except FileNotFoundError: print(f"Le fichier {nom_fichier_csv} n'a pas été trouvé.") return None # Programme principal if len(sys.argv) != 2: print("Usage: python script.py fichier.txt") sys.exit(1) nom_fichier_txt = sys.argv[1] nom_fichier_csv = 'export.csv' # Vous pouvez modifier cela selon vos besoins lignes_fichier = lire_fichier(nom_fichier_txt) if lignes_fichier is not None: entetes, valeurs_partkeepr = extraire_colonne_partkeepr(lignes_fichier, nom_fichier_csv) if valeurs_partkeepr is not None: # Écrire dans le fichier texte de sortie ecrire_dans_fichier_txt(entetes, valeurs_partkeepr, nom_fichier_txt)