Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1355 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

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR