IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

traitement csv perl


Sujet :

Langage Perl

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Avril 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2012
    Messages : 29
    Par défaut traitement csv perl
    Bonjour,
    je voudrais savoir comment ecrire dans une colonne specifique d un fichier csv.
    j'utilise le module cpan text::CSV_XS je recupere un csv avec des donnees et je dois completer ce csv en rajoutant des colonne de donnee.
    pour l'insant j arrive a recupere le fichier mais les donnees que j apporte sont rajouter en fin du fichier ...
    merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Billets dans le blog
    1
    Par défaut
    Ouvre ton fichier existant (N° 1) en lecture et un deuxième (2) en écriture. Lis les lignes du fichier 1 une à une, ajoute à chaque ligne les colonnes supplémentaires et écris ça dans le fichier 2.

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Avril 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2012
    Messages : 29
    Par défaut
    Merci
    J'ai résolu mon problème mais je me suis pris autrement:
    j'ai fais avec HASH de listes des ligne du csv et puis je fais mon traitement (avec une maniabilité surprenante ) et puis j'envois mes données bien organisée sur un nouveau csv toute en supprimant l'ancien.
    Pour la manipulation des csv je trouve que c'est la meilleur méthode (hash de liste).

  4. #4
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Billets dans le blog
    1
    Par défaut
    C'est une solution, mais elle présente deux problèmes qui peuvent, selon le cas, être gênants ou pas:
    - Charger tout un fichier en mémoire est OK si le fichier n'est pas très gros. Je manipule professionnellement des fichiers de plusieurs millions ou même dizaines de millions de lignes de données (et même plus, certains fichiers que je retraite atteignent la dizaine de gigaoctets), charger le tout en mémoire n'est pas une option pour moi. Je dois vraiment manipuler mes fichiers ligne à ligne.
    - L'utilisation d'une table de hachage fait que l'on récupère les enregistrements dans un ordre aléatoire. Cela peut être un problème dans certains cas.

    je préfère donc une solution du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    # (ouverture des fichier en entrée FIC1 et en sortie FIC2)
    while (<FIC1>) {
         chomp;
         #faire quelque chose sur la ligne contenue dans $_
         print FIC2 "$_\n";
         }
     
    # fermeture des fichiers, éventuellement effacement du fichier en entrée et renommage du ficher de sortie
    Ça a l'avantage d'être extrêmement simple et plus rapide (avec un fichier de plusieurs giga, ça compte).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme de traitement CSV
    Par Ghirahim dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 26/06/2015, 16h09
  2. [XL-2003] Traitement CSV et enregistrement en XLS
    Par cyr.odi dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 07/02/2013, 11h06
  3. traitement CSV
    Par phlam dans le forum Général Python
    Réponses: 3
    Dernier message: 08/05/2012, 17h50
  4. [SNMP] Utilisation d'une mib privée (et traitement via perl)
    Par Tivan dans le forum Développement
    Réponses: 4
    Dernier message: 12/10/2009, 14h33
  5. Regex pour traitement CSV
    Par slockstone dans le forum Langage
    Réponses: 12
    Dernier message: 23/12/2008, 17h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo