Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1898 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  En-tête de fichier csv

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

En-tête de fichier csv

n°1867621
gennosuke
Posté le 30-03-2009 à 19:41:49  profilanswer
 

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:

mood
Publicité
Posté le 30-03-2009 à 19:41:49  profilanswer
 

n°1867645
elsed
Posté le 30-03-2009 à 20:35:33  profilanswer
 

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 !) :)

n°1867666
masklinn
í dag viðrar vel til loftárása
Posté le 30-03-2009 à 21:21:27  profilanswer
 

À 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 by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1867738
gennosuke
Posté le 30-03-2009 à 23:55:56  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  En-tête de fichier csv

 

Sujets relatifs
fonction en PHP4 vèrifiant la validitè d'un fichier XML selon DTD[BATCH] automatiser changement de nom de fichier
API en PHP4 qui crée un fichier XML respectant un DTD donnéeVB Sauvegarder fichier avec droits admin
Lire et convertir un fichier .luw[résolu] Création de dossier
Prise de tete grave pour insérer un fichier AudioAjouter une ligne en tête et fin de fichier
Ajout de caractère en tête de ligne d'un fichier[opengl]une erreur a la compil, ai-je oublié un fichier d'en-tête ?
Plus de sujets relatifs à : En-tête de fichier csv


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)