Bonjour,

n'ayant pas de cursus en programmation, mais le faisant par hobby, je n'ai pas tous les éléments de langage et j'ai besoin de quelques informations.
Jusqu'a présent je ne me posais pas la question, je regardais comment parser un fichier et le tour était joué. Avec le xml je me suis pas mal intéressé à cause d'etree.Element du coup j'ai pas mal lu et relu le code... Et j'ai commencé à traiter moi même autrement, mais avant d'aller plus loin j'aimerai comprendre vraiment ce que signifie parser, peut être que je me plante.

Avant je pensais que ça constituait le fait de remplir via une lecture progressive, une variable. Là, je me demande si ça n'est pas plus que cela, et j'aimerai comprendre d'avantage les mécaniques, ou bien qu'on me dise comment ce que je vais expliquer pourrait s'appeler.

Le fait de lire un fichier, et de l'examiner, et de prédeterminer ce que sont certains segments lus dans un fichier... est cela parser ? (et donc pas seulement lire et remplir une variable)

J'ai fait un algorithme qui lorsqu'on lui passe le contenu d'un fichier xml, renvoie en échange (pour le moment un tuple) avec la catégorie à laquelle appartient cette chaine (balise ouverte/fermée d'une branche, branche isolée, feuille, commentaire...), et les portions de code bien segmentée pour une utilisation ultérieure. Je me dis que c'est une autre fonction qui doit gérer, de manière à ce que cette fonction là (doit on l'appeler donc parser ? ) soit le plus souple possible et interfaçable du coup avec toute fonction qui veut réutiliser cela. Est ce le bon cheminement ? ??

Et de là je ferais une fonction qui recréera un arbre, avec des classes pour chaque élément.... comme je pourrais faire aussi un affichage sous diverses formes, etc etc...

Et il y a un truc également qui me chiffone, c'est que dans le code d'elementTree, je vois des noms comportant "handler", et ayant crée un gestionnaire chargé de gérer les flux de sortie (en ajoutant des modules de dialogue on peut rediriger à l'écran et dans divers fichiers logs, avec une gestion des niveaux par module de dialogue de sorte d'avoir plus ou moins d'informations). Idem pour un module qui gère les évènements lancé par pynotify. Mais là je ne comprends pas trop comment on pourrait voir là dedans un gestionnaire/handler. A moins que ça soit un autre module, mais dans ce cas là, pourquoi un gestionnaire ? etree se base sur la bibliothèque expat que je n'ai pas encore consulté, et le code d'etree par dans tous les sens à mon gout si bien que je décroche parfois.

Merci pour vos réponses.


ps: je sais ça peut sembler étrange mais ça m'aide à mieux comprendre etree, à substituer aussi certaines fonctions car pas mal de choses me déplaisent dedans.. dont le find et findall.