En-tête de fichier csv

En-tête de fichier csv - Python - Programmation

Marsh Posté le 30-03-2009 à 19:41:49    

Bonjour,
avec python 2.5, j'extrais des fichiers csv comme suit :
cr=csv.reader(open(file),delimiter=';')
J'ai un fichier csv de plus de 200Mo dont je ne souhaite lire que l'en-tête.
C'est un tableau avec le nom des variables colonnes en première ligne.
Afin de gagner du temps, comment lire et extraire uniquement cette première ligne ?
Comme je dois répéter cette opération une centaine de fois avec des fichiers aussi volumineux, je ne veux pas tout lire!
Merci pour vos réponses.
 :jap:

Reply

Marsh Posté le 30-03-2009 à 19:41:49   

Reply

Marsh Posté le 30-03-2009 à 20:35:33    

Si tu ne veux lire qu'une ligne tu peux t'abstenir d'utiliser csv.reader :
 
exemple:

Code :
  1. # ouverture du fichier
  2. file_handler = open(file)
  3. # lit la premiere ligne
  4. first_line = file_handler.readline()
  5. # retourne dans une liste les elements "séparés"
  6. une_liste = first_line.split('=')
  7. # fermeture du fichier
  8. file_handler.close()


 
Cea etant, je ne suis pas sur que tu gagnes quoi que ce soit par rapport a simplement utiliser ta ligne de code et ne lire qu'un enregistrement ensuite. Il est possible que l'implementation du reader csv ressemble à celle ci dessus (qui doit d'ailleurs tres certainement chargé un bon bout de fichier en memoire).
(avec un peu de vérification, bien sur, là j'ai fait brutal !) :)

Reply

Marsh Posté le 30-03-2009 à 21:21:27    

À ma connaissance, csv.reader ne charge pas tout le fichier.
 
Il te suffit donc de faire

Code :
  1. headers = csv.reader(open(file, 'b'), delimiter=';').next()


 
edit: je viens de tester sur un CSV de 3.4Go, c'est instantané.


Message édité par masklinn le 30-03-2009 à 21:35:22

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 30-03-2009 à 23:55:56    

OK merci,
on a beaucoup d'options avec ce reader pratique.
Tout fonctionne.
A +

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed