[CSV] Problème de lecture chaîne de caractères

Fermé
Marionscn Messages postés 2 Date d'inscription jeudi 8 septembre 2016 Statut Membre Dernière intervention 12 septembre 2016 - 8 sept. 2016 à 13:55
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 - 12 sept. 2016 à 11:03
Bonjour à tous,

Je suis en train (d'essayer) de coder un petit programme pour lire un fichier CSV, l'exploiter (créer des graphes polaires) et renvoyer un autre CSV modifié.
Je suis confrontée à un problème: la lecture de mon CSV est interrompue car il n'arrive pas à convertir mes chaînes de caractère.
Mon fichier se présente cette forme: L1[date|time|lat|long| ...] ; L2[280916|152645|....] (fichier excel à la base).
Voici comme j'ai codé l'importation de mon fichier:
class Dialect(csv.excel):
    delimiter=";"
    quotechar=","
    quoting =csv.QUOTE_MINIMAL
    quoting=csv.QUOTE_NONNUMERIC
       
#Importation du fichier
csvi=csv.reader(open("C:/Users/mario/Desktop/test.csv","r"),Dialect())


Lorsque je le lance, je reçois le message: ValueError: could not convert string to float: ' date '.

Je ne sais pas comment faire pour lire cette première ligne ou éventuellement l'enlever sachant qu'a la fin de mon programme, il faudra que je sorte un CSV sous le meme format mais avec cette ligne traduite en français.

Merci beaucoup de vos réponses ! :-)
A voir également:

3 réponses

Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 931
12 sept. 2016 à 11:03
1
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 931
Modifié par Whismeril le 8/09/2016 à 21:51
Bonsoir

je ne fais pas de Python, mais entre ton message d'erreur et ton exemple de fichier, y a peut être un début de piste.

could not convert string to float: ' date '
Y a un texte dont tu as dit ou laisser croire à Python qu'il représente un nombre décimal. Et ce texte ben Python n'arrive pas à trouver en quoi il ressemble à un nombre décimal.
En plus il te dit même c'est quoi le texte en question :
' date '


Et comme dans,
Mon fichier se présente cette forme: L1[date|time|lat|long| ...] ; L2[280916|152645|....]
y'a date coincé entre un [ et un |.

D'ailleurs, soit dit en passant, c'est un csv à la c*n ton fichier, si on regarde la norme le délégateur d'un csv c'est la virgule (Coma Separator Values), ce qui est toujours le cas d'un csv Linux ou Mac. Windows dans un soucis mercantile d'ouverture au plus grand nombre est passé au ; car il y a des pays ou la , est le séparateur décimal (comme nous en France!), mais il n'est nulle part fait mention de [ ou de |.



Quand j'étais petit, la mer Morte n'était que malade.
George Burns
0
Marionscn Messages postés 2 Date d'inscription jeudi 8 septembre 2016 Statut Membre Dernière intervention 12 septembre 2016
12 sept. 2016 à 10:15
Merci de ta réponse.

En fait mon fichier csv ne se présente pas avec ces séparateurs, c'est juste une syntaxe de "présentation".
Mon fichier provient d'un excel tout ce qu'il y a de plus classique.

Je ne sais pas trop comment marche la fonction csv.reader, je ne comprends pas comment il fait pour interpréter les string ou les float.

J'aimerai savoir si quelqu'un sait comment dire à cette fonction de ne pas lire les string de la première ligne de mon csv.
0