Bonjour,
Je récupère un fichier .csv. Il provient d’un poste windows qui inetrroge une base de donnée oracle, installée sur un serveur Centos. Je récupère les lignes avec une instruction split(), sur mon poste Debian stable. Le fichier résultant est bien lisible par cat, mais si je l’édite avec vim ou gedit j’obtiens des caractères spéciaux en plus.
le fichier csv fait 19000 lignes.
j’en colle deux ici pour exemple:
��PRENOM NOM DESIGNATION CODECIP COUNT(CODECIP) QTEFACTUREE OUVERT ANNEE
Desfeux PHARMACIE VAXIGRIP Susp inj ser pr�r Ser/0,5ml 3400932129904 242 225 1 2017
le script python que j’utilise:
#/usr/bin/python
2 #-coding utf8-
3 import sys
4 gv = open(“presc.gv”,“w”)
5 gv.write(“digraph G {”)
6 gv.close()
7 fic = open (“prescripteurDeMedocs.csv”,“r”)
8 list = fic.readlines()
9 for p in list[1:10]:
10 pp = p.split("\t")
11 if len(pp)>2:
12 gv = open(“presc.gv”,“a”)
13 enc = sys.getfilesystemencoding()
14 print enc
15 st = pp[0].decode(‘iso-8859-1’)### j’essaie de jouer avec les encodages
16 st =st.encode(‘utf-8’)
17 #gv.write( pp[0]+pp[1]+"->"+pp[3]+"[label = “”+pp[2]+""];\n")
18 #pt= st+pp[1]+"->"+pp[3]+"[label = “”+pp[2]+""];\n"
19 pt = “%s %s -> %s [label=”%s"]\n" % (pp[0],pp[1],pp[3],pp[2])
20 print pt
21 gv.write(str(pt))
22 gv.close()
23 gv=open(“presc.gv”,“a”)
24 gv.write("}\n")
25 gv.close()
fichier de sortie sous vim:
digraph G {^@D^@e^@s^@f^@e^@u^@x^
etc…
Bizarre chaque caractère issu du fichier .csv précédé ^@?
J’ai testé mon script avec un autre csv et ça marche impec. Donc je penche pour un problème d’encodage, mais je n’ai pas la main sur le programme qui produit le csv.
Si quelqu’un a une idée, merci.
Merci