Re: Caractère parasite dans une cellule de tableur.

Liste des GroupesRevenir à fcl python 
Sujet : Re: Caractère parasite dans une cellule de tableur.
De : om+news (at) *nospam* miakinen.net (Olivier Miakinen)
Groupes : fr.comp.lang.python
Date : 15. Aug 2021, 10:16:38
Autres entêtes
Organisation : There's no cabale
Message-ID : <sfaih5$2pdt$1@cabale.usenet-fr.net>
References : 1
User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0 SeaMonkey/2.53.1
Bonjour,

Le 14/08/2021 à 07:56, Dominique a écrit :
 
Je retraite de gros fichiers csv avec Pandas (pour supprimer des
colonnes et des lignes inutiles) et Python (bibliothèque csv)
 
Vous trouverez ici :
 
https://drop.sans-nuage.fr/r/Lcj9I9_12h#xbtPIzJd6zt2Cu0JNojli+VBpCJxNHJ0B+E7legRgOE=
 
un fichier csv avec deux champs séparés par un ;
 
Le second champ est pollué par un retour à la ligne (\b). Avec gedit, ce
second champ apparaît sur une 2e ligne ligne !

Tout d'abord, le \b n'est pas un passage à la ligne mais un retour
arrière (backspace, de code ASCII 08).

Cela dit, dans ton fichier il y a bien un passage à la ligne \n au
milieu de la chaîne :

$ od -c test.csv
0000000   C   E   L   I   N   E   ;   "   F   i   l   t   r   e       s
0000020   t   r   u   c   t   u   r   e   l       c   o   d   i   q   u
0000040   e       :       ,       T   R   E   S 342 200 246   .       (
0000060   0   2   9   0   0   5   )  \n   I   d   e   n   t   i   f   i
0000100   a   n   t       o   r   g   a   n   i   s   m   e       (   C
0000120   O   D   E   _   B   U   D   C   O   L   L   )   ,       l   i
0000140   s   t   e       d   e       v   a   l   e   u   r   s       a
0000160   u   t   o   r   i   s 303 251   e   s       :       0   2   9
0000200   0   0   5   4   1   4   C   0   ,       0   2   9   0   0   5
0000220   4   1   4   E   0   ,       0   2   9   0   0   5   4   1   4
0000240   P   4   ,       0   2   9   0   0   5   4   1   4   P   2   ,
0000260       0   2   9   0   0   5   4   1   4   B   0   ,       0   2
0000300   9   0   0   5   4   1   4   N   0   ,       0   2   9   0   0
0000320   5   4   1   4   0   0   ,       0   2   9   0   0   5   4   1
0000340   4   P   5   ,       0   2   9   0   0   5   4   1   4   P   1
0000360   ,       0   2   9   0   0   5   4   1   4   G   0   "  \n

Je sais le traiter sans problème avec LibreOffice. Mais je ne vois pas
comment supprimer ce \b avec Python (idéalement avec Pandas). Le bout de
fichier que je vous passe fait partie d'un fichier de plusieurs milliers
de lignes.

Le supprimer me semble une mauvaise idée car cela concatènerait
« (029005) » et « Identifiant » en « (029005)Identifiant ». Je
suppose que tu préfèrerais remplacer ce \n par une espace.

Je souhaite automatiser au maximum le retraitement afin de ne pas
conduire des utilisateurs peu agiles avec LibreOffice à faire des
manipulations compliquées, notamment retirer ce \b invisible.

str.replace("\n", " ")

Attention : il ne faut le faire que ligne par ligne (ou cellule par
cellule) après lecture du fichier CSV, pour ne pas supprimer les
sauts de ligne qui séparent des champs différents.

Si tu veux le faire sur tout le fichier, alors il faudra un traitement
qui tient compte de la position des guillemets et ce sera un poil plus
complexe.

--
Olivier Miakinen

Date Sujet#  Auteur
14 Aug 21 * Caractère parasite dans une cellule de tableur.5Dominique
15 Aug 21 `* Re: Caractère parasite dans une cellule de tableur.4Olivier Miakinen
16 Aug 21  `* Re: Caractère parasite dans une cellule de tableur.3Dominique
16 Aug 21   `* Re: Caractère parasite dans une cellule de tableur.2Olivier Miakinen
16 Aug 21    `- Re: Caractère parasite dans une cellule de tableur.1Dominique

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal