Parser

Parser - Python - Programmation

Marsh Posté le 15-12-2005 à 14:55:12    


Bonjour,
 
je souhaite parser un fichier qui ressemble dans l'idée à de l'XML mais ce n'en est pas biensur ;)
 
Mon fichier comporte 13200 lignes donc il est impensable de faire des boucles de test
ya-t-il un module pour ça? et si oui comment on s'en sert :p
 
voilà la structure de mon fichier :
{
val1 = "kljlk";
val2 = 133;
val3 = {
         val12 = 23;
         val22 = "popo";
};
 
vallist = (
        {
            te = 13;
            ml = 12;
        },
        {
            ml = 23;
            te = 36;
        }
     );
 
};
 
il y a 3 "types de balise",
les simples :
         toto = qqchose ;
les "enfants":
        parent = {
                  enfant1 = qqch;
                  enfant2 = qqch;
          };
les listes :
         liste = (
             {
                toto = qqch;
                tata = qqch;
              },
              {
                titi = qqch;
                pepe = qqch;
                momo = qqch;
              }
          );  
 
et biensur comme en xml, tout ça peut être combiner , il peut y avoir
des enfants, d'enfants, d'enfants qui peuvent être dans des listes etc etc  
 
Pfiou bref à l'aide !

Reply

Marsh Posté le 15-12-2005 à 14:55:12   

Reply

Marsh Posté le 21-12-2005 à 19:12:28    

Reply

Marsh Posté le 28-12-2005 à 23:37:44    

Vas récupérer et lire Text Processing in Python de David Mertz ( http://gnosis.cx/TPiP/ ), ce genre de trucs est le sujet du chapitre 4 (lis les chapitres précédents avant, sinon tu n'as aucune chance de piger).
 
Et lis également ses Charming Python ( http://www.gnosis.cx/publish/tech_index_cp.html ), qui sont ses écrits sur Python pour IBM DeveloperWorks (les liens mênent sur des versions txt, les icônes d'yeux sur des versions HTML), entre autres les 3-5 sur la manipulation de texte et les state machines et les 13, 16 et 19 sur la programmation fonctionnelle

Reply

Marsh Posté le 29-12-2005 à 10:45:35    

"Text Processing in Python" ce bouquin, c'est au moins du python1.5, c'est complètement dépassé

Reply

Marsh Posté le 29-12-2005 à 11:10:17    

Taz a écrit :

"Text Processing in Python" ce bouquin, c'est au moins du python1.5, c'est complètement dépassé


Raté, ça utilise du Python 2.0+ (2.1 en standard avec des fitures de 2.2) avec des indications sur les modifications à apporter pour faire fonctioner les scripts en 1.5 quand la chose est possible [:icon12]
 
Et le bouquin ne sera dépassé qu'à l'arrivée de Python3000 et la disparition de apply, map, filter et reduce (et encore, rien n'empêchera de les remettre même s'ils ne sont pas foutus dans un module à part) et lambda
 
Et même avec le retrait d'une partie des capacités de programmation fonctionnelle de python des builtins, le parsing et la manipulation de texte ne changent pas fondamentalement d'une année sur l'autre, le livre restera donc parfaitement lisible et intéressant.

Reply

Marsh Posté le 30-12-2005 à 11:52:32    

perso pour les parsers en python j'utilise yapps :)


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 30-12-2005 à 11:57:20    

masklinn a écrit :

Raté, ça utilise du Python 2.0+ (2.1 en standard avec des fitures de 2.2) avec des indications sur les modifications à apporter pour faire fonctioner les scripts en 1.5 quand la chose est possible [:icon12]
 
Et le bouquin ne sera dépassé qu'à l'arrivée de Python3000 et la disparition de apply, map, filter et reduce (et encore, rien n'empêchera de les remettre même s'ils ne sont pas foutus dans un module à part) et lambda
 
Et même avec le retrait d'une partie des capacités de programmation fonctionnelle de python des builtins, le parsing et la manipulation de texte ne changent pas fondamentalement d'une année sur l'autre, le livre restera donc parfaitement lisible et intéressant.


 
lambda et tout ce qu'il y a autour va disparaitre ? ca va être "remplacé" par quoi ?
( vu que visiblement ce sera même pas dans un module à part si j'ai bien compris )


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 30-12-2005 à 12:06:27    

0x90 a écrit :

lambda et tout ce qu'il y a autour va disparaitre ? ca va être "remplacé" par quoi ?
( vu que visiblement ce sera même pas dans un module à part si j'ai bien compris )


Lambda: rien (c'est une déclaration de fonction anonyme castrée, Guido n'aime pas les fonctions anonymes, point barre), utiliser des fonctions nommées à la place.
apply: utiliser les extended call (object(*args; **kwargs))
map/filter/reduce: listcomp/generators/genecomps
 
Vas voir la PEP Python3000 pour plus d'infos.

Reply

Marsh Posté le 05-01-2006 à 16:01:20    

justement tous ces trucs assez dépassé depuis 2.2 sont utilisés dans tous les sens dans cet ouvrage.

Reply

Marsh Posté le 05-01-2006 à 16:16:06    

Taz a écrit :

justement tous ces trucs assez dépassé depuis 2.2 sont utilisés dans tous les sens dans cet ouvrage.


En l'occurence des choses comme filter, map, reduce ne sont pas spécialement dépassés...
 
Quand bien même Guido ne les apprécie pas et préfère voir utilisé les listcomps/generators/genecomps à la place, il y a une différence de perfs notable entre map/filter et les listcomps, et elle n'est pas en faveur des listcomps (quand à reduce, ce n'est tout simplement pas faisable directement via listcomps, il faut créer de vraies boucles pour l'émuler).
Et ces opérations font partie des bases de la prog fonctionnelle [:petrus75]  
 
Enfin bon apparement tu ne l'as pas lu, donc je ne vois pas spécialement l'intérêt d'en discuter [:petrus75]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Sujets relatifs:

Leave a Replay

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