Parser - Python - Programmation
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
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é
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
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.
Marsh Posté le 30-12-2005 à 11:52:32
perso pour les parsers en python j'utilise yapps
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 |
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 )
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 ? |
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.
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.
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
Enfin bon apparement tu ne l'as pas lu, donc je ne vois pas spécialement l'intérêt d'en discuter
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
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 !