Bonjour,
les notions d'encodage ne sont pas ma spécialité.
J'avais trouvé un 'outil' qui me permettait globalement de gérer l'accentuation dans les fichiers CSV
Or, maintenant, j'ai une erreur qui bloque mon programme.
J'ai identifié le fautif : Il s'agit de <CR> ('\r' pour python)
Mais, j'en ai besoin...
je dois récupérer dans un champ d'une base de données, les 8 premières lignes de description d'un article (sous forme de lignes distincte)
voici une partie de mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
import re
import csv, codecs, cStringIO
tablitm = []
 
""" routine d'obtention des données de la requête dans 'irows' non décrite"""
 
for irow in irows:
	noart = irow.ItemCode
	longtexte = irow.UserText
	if longtexte is not None:
		wtexte = re.split('\r',longtexte)
		nblig = len(wtexte)
		maxlig = 8
		if nblig < 8:
			maxlig = nblig
		chaine = '\r'.join(wtexte[0:maxlig])
		tablitm.append([])
		for elem in(noart, chaine):
			tablitm[-1].append(elem)
fs = cStringIO.StringIO()
c = csv.writer(fs, delimiter=';', quoting=csv.QUOTE_NONE, quotechar='')
for liste in tablitm:
    ligne = []
    for elem in liste:
        ligne.append(elem.encode('utf-8'))
    c.writerow(ligne)
là, j'ai l'erreur suivante :
Traceback (most recent call last):
File "<pyshell#71>", line 5, in <module>
c.writerow(ligne)
Error: need to escape, but no escapechar set


à titre d'exemple, voici la représentation d'une 'ligne' de la table tablitm :
[u'KDL22BX200B', u"Taille de l'\xe9cran en cm : 56\rFull HD : non\rR\xe9solution : 1366x768\rTuner : TNT HD\rPuissance de sortie audio en Watts : 6\rEntr\xe9e HDMI : 1\rPrise p\xe9ritel : 1\rEntr\xe9e USB : oui 2.0"]

Si je remplace la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
chaine = '\r'.join(wtexte[0:maxlig])
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
chaine = '-'.join(wtexte[0:maxlig])
cela fonctionne correctement.

Le remplacement de quotechar='' par quotchar='"' n'apporte pas de modification

Que dois-je faire ?