#26 Le 20/11/2018, à 08:53
- bipede
Re : Lecture fichier Csv
import sys
import csv
import glob
import os
repertoire=sys.argv[1]
fic=glob.glob('*.csv')[0]
with open(fic) as csvFile, open(os.path.join(repertoire,"result.csv"), "w") as resultfile:
racine=repr(csvFile).split("'")[1].replace('.csv','')
reader = csv.reader(csvFile)
writer = csv.writer(resultfile, lineterminator = "\n", delimiter=";")
writer.writerow(["HG","ADD", racine])
boucle = 0
for row in reader:
boucle += 1
if boucle > 4:
nom = row[0].strip("'")
serveur= 'Inconnu-' + nom
if 'las' in nom:
serveur = "Tomc-" + nom
elif 'lht' in nom:
serveur = "Ap-" + nom
elif 'ldb' in nom:
serveur = "Bdd-" + nom
writer.writerow(["HOST","ADD", serveur, row[1].replace("'", "")])
csvFile.close()
Desktop: MSI - Intel® Core™ i5-3330 CPU @ 3.00GHz × 4 - RAM 8 go- Kubuntu 21.04 - Système sur SSD 64 Go - /home sur HDD 500 Go.
Laptop: DELL Inspiron-15 3567 - Intel® Core™ i5-7200 CPU @ 2.50GHz × 4 - RAM 8 go - HDD 1 To - Ubuntu 20.10 avec /home séparé.
Mon site: Les contributions du bipède
Hors ligne
#27 Le 20/11/2018, à 08:58
- sylpard
Re : Lecture fichier Csv
oui c'est ce que je te disais car j' ai ajouté cette information après coup désolé .
en fait les nom machines se termine par deux caractères numérique et juste avant trois lettres :
soit las ou lht ou ldb .
en fonction de ces trois lettre il faudrait pouvoir ajouter au nom machine les cas suivant :
las => Tomc (tomcat)
lht => Ap (apache)
ldb => Bdd (base de données)
du coup dans l' exemple il y aurait Tomc-pdacctelas01
Hors ligne
#28 Le 20/11/2018, à 09:04
- sylpard
Re : Lecture fichier Csv
Merci Bipède c'est cela !
j'ai plus qu' a essayer de comprendre .....:-)
Hors ligne
#29 Le 20/11/2018, à 09:26
- pingouinux
Re : Lecture fichier Csv
Autre façon de faire :
Au début du script
import re
typ={'las':'Tomc', 'lht':'Ap', 'ldb':'Bdd'}
puis
if boucle > 4:
row0=row[0].strip("'")
suffix=re.sub('\d+$','',row0)[-3:]
writer.writerow(["HOST","ADD", '-'.join(typ[suffix],row0), row[1].replace("'", "")])
Hors ligne
#30 Le 20/11/2018, à 09:32
- sylpard
Re : Lecture fichier Csv
Ok effectivement autre méthode !
Merci à vous pour votre aide !!
Hors ligne
#31 Le 20/11/2018, à 09:51
- sylpard
Re : Lecture fichier Csv
si je veux ajouter en bout de mon fichier csv
HOST;APPLY;Tomc-pdacctelas01
HOST;APPLY;Ap-pdacctelht01
HOST;APPLY;Tomc-pdacctelas02
HOST;APPLY;Ap-pdacctelht02
HOST;APPLY;Tomc-pdacctelas03
HOST;APPLY;Ap-pdacctelht03
j'ai fait comme cela :
import sys
import csv
import glob
import os
# d?finition du repertoir d' export"
repertoire="export"
# renvoi le fichier avec l' extension csv vers la variable fic
fic=glob.glob('*.csv')[0]
# ouverture et
with open(fic) as csvFile, open(os.path.join(repertoire,"result.csv"), "w") as resultfile:
# recuperation du nom du fichier source et suppression de l' extension
racine=repr(csvFile).split("'")[1].replace('.csv','')
# lecture et ecriture des fichiers source et resultat avec mise en forme
reader = csv.reader(csvFile)
writer = csv.writer(resultfile, lineterminator = "\n", delimiter=";")
writer.writerow(["HG","ADD", racine])
boucle = 0
for row in reader:
boucle += 1
if boucle > 4:
nom = row[0].strip("'")
serveur= 'Inconnu-' + nom
if 'las' in nom:
serveur = "Tomc-" + nom
elif 'lht' in nom:
serveur = "Ap-" + nom
elif 'ldb' in nom:
serveur = "Bdd-" + nom
writer.writerow(["HOST","ADD", serveur, row[1].replace("'", "")])
writer.writerow(["HOST","APPLYTPL", serveur])
csvFile.close()
mais le soucis c'est qu' il m' intercalle les lignes et moi j'aurais besoin qu' il me fasse des blocs:
HG;ADD;ACCTE
HOST;ADD;Tomc-pdacctelas01;10.xxx.16.45
HOST;APPLYTPL;Tomc-pdacctelas01
HOST;ADD;Ap-pdacctelht01;10.xxx.11.42
HOST;APPLYTPL;Ap-pdacctelht01
HOST;ADD;Tomc-pdacctelas02;10.xxx.16.46
HOST;APPLYTPL;Tomc-pdacctelas02
HOST;ADD;Ap-pdacctelht02;10.xxx.11.48
HOST;APPLYTPL;Ap-pdacctelht02
HOST;ADD;Tomc-pdacctelas03;10.xxx.16.47
HOST;APPLYTPL;Tomc-pdacctelas03
HOST;ADD;Ap-pdacctelht03;10.xxx.11.255
HOST;APPLYTPL;Ap-pdacctelht03
HG;ADD;ACCTE
HOST;ADD;Tomc-pdacctelas01;10.xxx.16.45
HOST;ADD;Ap-pdacctelht01;10.xxx.11.42
HOST;ADD;Tomc-pdacctelas02;10.xxx.16.46
HOST;ADD;Ap-pdacctelht02;10.xxx.11.48
HOST;ADD;Tomc-pdacctelas03;10.xxx.16.47
HOST;ADD;Ap-pdacctelht03;10.xxx.11.255
HOST;APPLY;Tomc-pdacctelas01
HOST;APPLY;Ap-pdacctelht01
HOST;APPLY;Tomc-pdacctelas02
HOST;APPLY;Ap-pdacctelht02
HOST;APPLY;Tomc-pdacctelas03
HOST;APPLY;Ap-pdacctelht03
Dernière modification par sylpard (Le 20/11/2018, à 09:59)
Hors ligne
#32 Le 20/11/2018, à 10:08
- pingouinux
Re : Lecture fichier Csv
Essaye ceci :
Avant la boucle
cumul=[]
Dans la boucle
writer.writerow(["HOST","ADD", serveur, row[1].replace("'", "")])
cumul.append(["HOST","APPLYTPL", serveur])
Après la boucle
for ligne in cumul: writer.writerow(ligne)
Hors ligne
#33 Le 20/11/2018, à 10:31
- sylpard
Re : Lecture fichier Csv
j'ai fais ceci:
import sys
import csv
import glob
import os
repertoire="export"
fic=glob.glob('*.csv')[0]
with open(fic) as csvFile, open(os.path.join(repertoire,"result.csv"), "w") as resultfile:
racine=repr(csvFile).split("'")[1].replace('.csv','')
reader = csv.reader(csvFile)
writer = csv.writer(resultfile, lineterminator = "\n", delimiter=";")
writer.writerow(["HG","ADD", racine])
cumul=[]
boucle = 0
for row in reader:
boucle += 1
if boucle > 4:
for ligne in cumul: writer.writerow(ligne)
nom = row[0].strip("'")
serveur= 'Inconnu-' + nom
if 'las' in nom:
serveur = "Tomc-" + nom
elif 'lht' in nom:
serveur = "Ap-" + nom
elif 'ldb' in nom:
serveur = "Bdd-" + nom
writer.writerow(["HOST","ADD", serveur, row[1].replace("'", "")])
cumul.append(["HOST","APPLYTPL", serveur])
csvFile.close()
mais le resultat .....:(
HG;ADD;ACCTE
HOST;ADD;Tomc-pdacctelas01;10.xxx.16.45
HOST;APPLYTPL;Tomc-pdacctelas01
HOST;ADD;Ap-pdacctelht01;10.xxx.11.42
HOST;APPLYTPL;Tomc-pdacctelas01
HOST;APPLYTPL;Ap-pdacctelht01
HOST;ADD;Tomc-pdacctelas02;10.xxx.16.46
HOST;APPLYTPL;Tomc-pdacctelas01
HOST;APPLYTPL;Ap-pdacctelht01
HOST;APPLYTPL;Tomc-pdacctelas02
HOST;ADD;Ap-pdacctelht02;10.xxx.11.48
HOST;APPLYTPL;Tomc-pdacctelas01
HOST;APPLYTPL;Ap-pdacctelht01
HOST;APPLYTPL;Tomc-pdacctelas02
HOST;APPLYTPL;Ap-pdacctelht02
HOST;ADD;Tomc-pdacctelas03;10.xxx.16.47
HOST;APPLYTPL;Tomc-pdacctelas01
HOST;APPLYTPL;Ap-pdacctelht01
HOST;APPLYTPL;Tomc-pdacctelas02
HOST;APPLYTPL;Ap-pdacctelht02
HOST;APPLYTPL;Tomc-pdacctelas03
HOST;ADD;Ap-pdacctelht03;10.xxx.11.255
bref je séche !
Dernière modification par sylpard (Le 20/11/2018, à 11:21)
Hors ligne
#34 Le 20/11/2018, à 11:17
- bipede
Re : Lecture fichier Csv
Avec la ligne
for ligne in cumul: writer.writerow(ligne)
placée en début de boucle tu le reportes intégralement dans ton fichier à chaque passage dans la boucle.
Tu devrais revoir tes connaissances en algorithmie...
Dernière modification par bipede (Le 20/11/2018, à 11:19)
Desktop: MSI - Intel® Core™ i5-3330 CPU @ 3.00GHz × 4 - RAM 8 go- Kubuntu 21.04 - Système sur SSD 64 Go - /home sur HDD 500 Go.
Laptop: DELL Inspiron-15 3567 - Intel® Core™ i5-7200 CPU @ 2.50GHz × 4 - RAM 8 go - HDD 1 To - Ubuntu 20.10 avec /home séparé.
Mon site: Les contributions du bipède
Hors ligne
#35 Le 20/11/2018, à 11:21
- bipede
Re : Lecture fichier Csv
Autre façon de faire :
Au début du script
import re typ={'las':'Tomc', 'lht':'Ap', 'ldb':'Bdd'}
puis
if boucle > 4: row0=row[0].strip("'") suffix=re.sub('\d+$','',row0)[-3:] writer.writerow(["HOST","ADD", '-'.join(typ[suffix],row0), row[1].replace("'", "")])
T'as peur de rien, vu son niveau, l'engager dans les expressions régulières c'est prendre le risque d'une implosion des neurones...
Dernière modification par bipede (Le 20/11/2018, à 11:22)
Desktop: MSI - Intel® Core™ i5-3330 CPU @ 3.00GHz × 4 - RAM 8 go- Kubuntu 21.04 - Système sur SSD 64 Go - /home sur HDD 500 Go.
Laptop: DELL Inspiron-15 3567 - Intel® Core™ i5-7200 CPU @ 2.50GHz × 4 - RAM 8 go - HDD 1 To - Ubuntu 20.10 avec /home séparé.
Mon site: Les contributions du bipède
Hors ligne
#36 Le 20/11/2018, à 11:24
- sylpard
Re : Lecture fichier Csv
bon je pourrais le prendre mal mais effectivement je début en python ..... alors l' algorithmie c'est à un tout petit niveau ! mais je soigne :-)
Ce qui est sur c'est que je sèche sur cette histoire de boucle ...
Dernière modification par sylpard (Le 20/11/2018, à 11:40)
Hors ligne
#37 Le 20/11/2018, à 11:51
- pingouinux
Re : Lecture fichier Csv
@bipede #35 :
Ça paraît peut-être plus compliqué, mais je ne récupère que les 3 caractères situés juste avant la partie numérique.
Si par exemple nom vaut helasldb02, ta méthode en #26 va récupérer las et non ldb.
Hors ligne
#38 Le 20/11/2018, à 12:31
- pingouinux
Re : Lecture fichier Csv
@sylpard :
J'ai bien reçu ton message de 11h53.
Quand en #32, je te disais "Après la boucle", ce n'est pas après la ligne
if boucle > 4:
mais après le bloc commençant par
for row in reader:
Édité : Pour préciser un peu
cumul=[] # Liste vide
..................................................
for row in reader:
..........................................
writer.writerow(["HOST","ADD", serveur, row[1].replace("'", "")])
cumul.append(["HOST","APPLYTPL", serveur]) # Cumul des lignes à sortir ultérieurement
..........................................
# On écrit maintenant tout ce qu'on a cumulé
for ligne in cumul: writer.writerow(ligne)
Dernière modification par pingouinux (Le 20/11/2018, à 13:40)
Hors ligne
#39 Le 20/11/2018, à 15:34
- bipede
Re : Lecture fichier Csv
@bipede #35 :
Ça paraît peut-être plus compliqué, mais je ne récupère que les 3 caractères situés juste avant la partie numérique.
Si par exemple nom vaut helasldb02, ta méthode en #26 va récupérer las et non ldb.
Bien vu...
Desktop: MSI - Intel® Core™ i5-3330 CPU @ 3.00GHz × 4 - RAM 8 go- Kubuntu 21.04 - Système sur SSD 64 Go - /home sur HDD 500 Go.
Laptop: DELL Inspiron-15 3567 - Intel® Core™ i5-7200 CPU @ 2.50GHz × 4 - RAM 8 go - HDD 1 To - Ubuntu 20.10 avec /home séparé.
Mon site: Les contributions du bipède
Hors ligne
#40 Le 21/11/2018, à 06:37
- grim7reaper
Re : Lecture fichier Csv
Salut sylpard,
Je pense que pour aider les gens qui souhaitent t’aider ça serait pas mal de faire un message qui résume ton besoin, parce que là c’est fourni au compte-gouttes à travers plusieurs messages et c’est difficile à suivre (personnellement j’aimerai bien essayer de t’aider, mais je n’arrive pas à comprendre le comportement voulu).
Un bon début serait de fournir:
- un exemple de fichier d’entrée (avec des fausses données si besoin)
- un exemple de fichier de sortie voulu, correspondant au fichier d’entrée
- les paramètres que prends ton programmes (ce qui n’est pas codé en dur donc)
- une liste des contraintes supplémentaires (commencer la lecture à la 2e lignes, etc.)
Si tu pouvais fournir ça, je pense que ça aiderait beaucoup les participants de la discussion
Hors ligne
#41 Le 22/11/2018, à 08:16
- sylpard
Re : Lecture fichier Csv
Bonjour,
alors pour reprendre,
concernant la seconde méthode de pingouinux
j'ai fait ceci
import sys
import csv
import glob
import os
import re
typ={'las':'Tomc', 'lht':'Ap', 'ldb':'Bdd'}
repertoire='export'
fic=glob.glob('*.csv')[0]
with open(fic) as csvFile, open(os.path.join(repertoire,"result.csv"), "w") as resultfile:
racine=repr(csvFile).split("'")[1].replace('.csv','')
reader = csv.reader(csvFile)
writer = csv.writer(resultfile, lineterminator = "\n", delimiter=";")
writer.writerow(["HG","ADD", racine])
boucle = 0
for row in reader:
boucle += 1
if boucle > 4:
row0=row[0].strip("'")
suffix=re.sub('\d+$','',row0)[-3:]
writer.writerow(["HOST","ADD", '-'.join(typ[suffix],row0), row[1].replace("'", "")])
csvFile.close()
et j' ai le message d' erreur suivant : TypeError:join() takes exactly one argument (2 given)
Dernière modification par sylpard (Le 22/11/2018, à 08:16)
Hors ligne
#42 Le 22/11/2018, à 08:36
- pingouinux
Re : Lecture fichier Csv
et j' ai le message d' erreur suivant : TypeError:join() takes exactly one argument (2 given)
Ah oui, je me suis trompé. C'est :
writer.writerow(["HOST","ADD", '-'.join((typ[suffix],row0)), row[1].replace("'", "")])
Hors ligne
#43 Le 22/11/2018, à 08:47
- sylpard
Re : Lecture fichier Csv
ok ca fonctionne !
pour continuer sur mon fichier de sortie suivant :
HG;ADD;ACCTE
HOST;ADD;pdacctelas01;10.xxx.16.45
HOST;ADD;pdacctelht01;10.xxx.11.42
HOST;ADD;pdaccteldb02;10.xxx.16.46
HOST;ADD;pdacctelht02;10.xxx.11.48
HOST;ADD;pdacctelas03;10.xxx.16.47
HOST;ADD;pdaccteldb03;10.xxx.11.255
HOST;APPLY;Tomc-pdacctelas01
HOST;APPLY;Ap-pdacctelht01
HOST;APPLY;Tomc-pdacctelas02
HOST;APPLY;Ap-pdacctelht02
HOST;APPLY;Tomc-pdacctelas03
HOST;APPLY;Ap-pdacctelht03
j'ai fait ceci
import sys
import csv
import glob
import os
import re
typ={'las':'Tomc', 'lht':'Ap', 'ldb':'Bdd'}
repertoire='export'
fic=glob.glob('*.csv')[0]
with open(fic) as csvFile, open(os.path.join(repertoire,"result.csv"), "w") as resultfile:
racine=repr(csvFile).split("'")[1].replace('.csv','')
reader = csv.reader(csvFile)
writer = csv.writer(resultfile, lineterminator = "\n", delimiter=";")
writer.writerow(["HG","ADD", racine])
cumul=[]
boucle = 0
for row in reader:
boucle += 1
if boucle > 4:
row0=row[0].strip("'")
suffix=re.sub('\d+$','',row0)[-3:]
writer.writerow(["HOST","ADD", '-'.join((typ[suffix],row0)), row[1].replace("'", "")])
cumul.append(["HOST","APPLY", '-'.join((typ[suffix],row0))])
for ligne in cumul: writer.writerow(ligne)
csvFile.close()
mais j' ai ce résultat ....
HG;ADD;ACCTE
HOST;ADD;Tomc-pdacctelas01;10.xxx.16.45
HOST;APPLY;Tomc-pdacctelas01
HOST;ADD;Ap-pdacctelht01;10.xxx.11.42
HOST;APPLY;Tomc-pdacctelas01
HOST;APPLY;Ap-pdacctelht01
HOST;ADD;Tomc-pdacctelas02;10.xxx.16.46
HOST;APPLY;Tomc-pdacctelas01
HOST;APPLY;Ap-pdacctelht01
HOST;APPLY;Tomc-pdacctelas02
HOST;ADD;Ap-pdacctelht02;10.xxx.11.48
HOST;APPLY;Tomc-pdacctelas01
HOST;APPLY;Ap-pdacctelht01
HOST;APPLY;Tomc-pdacctelas02
HOST;APPLY;Ap-pdacctelht02
HOST;ADD;Tomc-pdacctelas03;10.xxx.16.47
HOST;APPLY;Tomc-pdacctelas01
HOST;APPLY;Ap-pdacctelht01
HOST;APPLY;Tomc-pdacctelas02
HOST;APPLY;Ap-pdacctelht02
HOST;APPLY;Tomc-pdacctelas03
HOST;ADD;Ap-pdacctelht03;10.xxx.11.255
HOST;APPLY;Tomc-pdacctelas01
HOST;APPLY;Ap-pdacctelht01
HOST;APPLY;Tomc-pdacctelas02
HOST;APPLY;Ap-pdacctelht02
HOST;APPLY;Tomc-pdacctelas03
HOST;APPLY;Ap-pdacctelht03
Probléme réglé ..... je sui décidement une quiche
import sys
import csv
import glob
import os
import re
typ={'las':'Tomc', 'lht':'Ap', 'ldb':'Bdd'}
repertoire='export'
fic=glob.glob('*.csv')[0]
cumul=[]
with open(fic) as csvFile, open(os.path.join(repertoire,"result.csv"), "w") as resultfile:
racine=repr(csvFile).split("'")[1].replace('.csv','')
reader = csv.reader(csvFile)
writer = csv.writer(resultfile, lineterminator = "\n", delimiter=";")
writer.writerow(["HG","ADD", racine])
boucle = 0
for row in reader:
boucle += 1
if boucle > 4:
row0=row[0].strip("'")
suffix=re.sub('\d+$','',row0)[-3:]
writer.writerow(["HOST","ADD", '-'.join((typ[suffix],row0)), row[1].replace("'", "")])
cumul.append(["HOST","APPLY", '-'.join((typ[suffix],row0))])
for ligne in cumul: writer.writerow(ligne)
csvFile.close()
Dernière modification par sylpard (Le 22/11/2018, à 09:06)
Hors ligne
#44 Le 22/11/2018, à 09:01
- sylpard
Re : Lecture fichier Csv
Pour répondre à grim7reaper
Salut sylpard,
Je pense que pour aider les gens qui souhaitent t’aider ça serait pas mal de faire un message qui résume ton besoin, parce que là c’est fourni au compte-gouttes à travers plusieurs messages et c’est difficile à suivre (personnellement j’aimerai bien essayer de t’aider, mais je n’arrive pas à comprendre le comportement voulu).
Un bon début serait de fournir:
- un exemple de fichier d’entrée (avec des fausses données si besoin)
- un exemple de fichier de sortie voulu, correspondant au fichier d’entrée
- les paramètres que prends ton programmes (ce qui n’est pas codé en dur donc)
- une liste des contraintes supplémentaires (commencer la lecture à la 2e lignes, etc.)Si tu pouvais fournir ça, je pense que ça aiderait beaucoup les participants de la discussion wink
Merci pour ton message, le soucis c'est que je débute en python et j'essai de lire et de traiter un fichier csv en ajoutant aux données lues des commandes dans le fichier de sortie .
mes idées et mes écris ne sont pas toujours clairs, j' en suis conscient mais j' essai de préciser au mieux avec les maigres connaissances que j'ai .
Hors ligne
#45 Le 22/11/2018, à 09:06
- pingouinux
Re : Lecture fichier Csv
Comme je te l'ai dit en #32, et montré en #38, l'impression des lignes de cumul doit se faire en dehors de la boucle for row...
.........................................................................;
for row in reader:
boucle += 1
if boucle > 4:
row0=row[0].strip("'")
suffix=re.sub('\d+$','',row0)[-3:]
writer.writerow(["HOST","ADD", '-'.join((typ[suffix],row0)), row[1].replace("'", "")])
cumul.append(["HOST","APPLY", '-'.join((typ[suffix],row0))])
# for ligne in cumul: writer.writerow(ligne) # Dans la boucle for
for ligne in cumul: writer.writerow(ligne) # En dehors de la boucle for
.........................................................................;
Hors ligne
#46 Le 22/11/2018, à 09:08
- sylpard
Re : Lecture fichier Csv
oui.... je m'en suis rendu compte branchant deux neurones de +
Hors ligne
#47 Le 22/11/2018, à 09:12
- sylpard
Re : Lecture fichier Csv
et donc dans le cas ou je dois ajouter un autre bloc en bout il faut que j' utilise la même méthode
cumult=[]
?
HC;ADDMEMBER;All-hosts;Bdd-pgsql-extranet-pdzd_pdextranetldb71|Bdd-nas-extranet-pdzd_pdextranetldn71|Tomc-extranet-pdzd_pdextranetlas71|Ap-extranet-pdzd_pdextranetlht71|Tomc-extranet-pdzd_pdextranetlas72|Ap-extranet-pdzd_pdextranetlht72|Tomc-extranet-pdzd_pdextranetlas73|Ap-extranet-pdzd_pdextranetlht73
HC;ADDMEMBER;Serveur-de-base-de-donnees-Pgsql;Bdd-pgsql-extranet-pdzd_pdextranetldb71
HC;ADDMEMBER;Serveur-Tomcat;Tomc-extranet-pdzd_pdextranetlas71
HC;ADDMEMBER;Serveur-Apache;Ap-extranet-pdzd_pdextranetlht71
HC;ADDMEMBER;Serveur-Tomcat;Tomc-extranet-pdzd_pdextranetlas72
HC;ADDMEMBER;Serveur-Apache;Ap-extranet-pdzd_pdextranetlht72
HC;ADDMEMBER;Serveur-Tomcat;Tomc-extranet-pdzd_pdextranetlas73
HC;ADDMEMBER;Serveur-Apache;Ap-extranet-pdzd_pdextranetlht73
Hors ligne
#48 Le 22/11/2018, à 09:27
- sylpard
Re : Lecture fichier Csv
import sys
import csv
import glob
import os
import re
typ={'las':'Tomc', 'lht':'Ap', 'ldb':'Bdd'}
repertoire='export'
fic=glob.glob('*.csv')[0]
cumul=[]
with open(fic) as csvFile, open(os.path.join(repertoire,"result.csv"), "w") as resultfile:
racine=repr(csvFile).split("'")[1].replace('.csv','')
reader = csv.reader(csvFile)
writer = csv.writer(resultfile, lineterminator = "\n", delimiter=";")
writer.writerow(["HG","ADD", racine])
boucle = 0
for row in reader:
boucle += 1
if boucle > 4:
row0=row[0].strip("'")
suffix=re.sub('\d+$','',row0)[-3:]
writer.writerow(["HOST","ADD", '-'.join((typ[suffix],row0)), row[1].replace("'", "")])
cumul.append(["HOST","APPLY", '-'.join((typ[suffix],row0))])
cumul.append(["HC","ADDMEMBER", '-'.join((typ[suffix],row0))])
for ligne in cumul: writer.writerow(ligne)
csvFile.close()
mais je ne comprends pas le principe car je me retrouve avec ce resultalt :
HG;ADD;ACCTE
HOST;ADD;Tomc-pdacctelas01;10.xxx.16.45
HOST;ADD;Ap-pdacctelht01;10.xxx.11.42
HOST;ADD;Tomc-pdacctelas02;10.xxx.16.46
HOST;ADD;Ap-pdacctelht02;10.xxx.11.48
HOST;ADD;Tomc-pdacctelas03;10.xxx.16.47
HOST;ADD;Ap-pdacctelht03;10.xxx.11.255
HOST;APPLY;Tomc-pdacctelas01
HC;ADDMEMBER;Tomc-pdacctelas01
HOST;APPLY;Ap-pdacctelht01
HC;ADDMEMBER;Ap-pdacctelht01
HOST;APPLY;Tomc-pdacctelas02
HC;ADDMEMBER;Tomc-pdacctelas02
HOST;APPLY;Ap-pdacctelht02
HC;ADDMEMBER;Ap-pdacctelht02
HOST;APPLY;Tomc-pdacctelas03
HC;ADDMEMBER;Tomc-pdacctelas03
HOST;APPLY;Ap-pdacctelht03
HC;ADDMEMBER;Ap-pdacctelht0
Hors ligne
#49 Le 22/11/2018, à 09:58
- pingouinux
Re : Lecture fichier Csv
C'est normal, tu remplis cumul en alternant les valeurs. Tu récupères donc la même chose en sortie.
Il faut utiliser une seconde variable pour le second bloc.
Hors ligne
#50 Le 22/11/2018, à 11:26
- sylpard
Re : Lecture fichier Csv
ok Super ça fonctionne !!! Merci
Hors ligne