|
|
@@ -0,0 +1,95 @@
|
|
|
+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)
|