| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- 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)
|