Forum Programmation.python parser un fichier texte

Posté par  .
Étiquettes : aucune
0
8
juin
2006

Bonjour,

J'ai cru comprendre qu'il était simple de parser un fichier texte avec python. Il faudrait que je crée ensuite à partir des données collectées un arbre pour ranger les données collectées.

Est ce que ce langage est bien approprié?

juste pour info : est ce que parser implique de devoir utiliser flex/bison, et dans mon cas est ce vraiment nécéssaire ou python fait il l'affaire.

Merci par avance

  • # oui, oui, possible.

    Posté par  . Évalué à 3.

    Ca dépend de ton fichier.

    python/perl/gawk/bash savent très bien gérer tout ca. Il faudrait un exemple de ton fichier.

    (Structure tabulé style csv, structure de type fichier ini, xml...)

    > est ce que parser implique de devoir utiliser flex/bison,
    Non, je dirais que c'est plutot la grosse artillerie. Mais ca peut être bien utile parfois.
    • [^] # La structure de mon fichier

      Posté par  . Évalué à 2.

      Voilà,
      en fait mon fichier est une description d'une BDD et je voudrais en récupérer les liens entre les tables :

      extrait du fichier :

      // AdrIpBail
      Bailleur, ST=AdrIpBail, SF=BailleurId, DT=Bailleur, C=1, T=NORMAL;

      // Bailleur
      Comment, ST=Bailleur, SF=CommentId, DT=Comment, C=1, T=OWNCOPY, UN="Commentaire", UT=comment, SD="Commentaire";
      Contact, ST=Bailleur, SF=BailleurId, DT=ContactBail, C=N, T=OWN, SD="Contacts";
      Contrat, ST=Bailleur, SF=BailleurId, DT=Contrat, C=N, T=DEFINE, SD="Contrats";

      // NomTable
      NomAutreTableEnLIEN, ST=var1, SF=var2, DT=var3, C=var3...

      et je veux récupérer NomTable, NomAutreTableEnLIEN, var1,var2....

      je peux éventuellement rajouter d'autres marqueurs pour séparer les champs que je veux récupérer...

      Si vous avez des exemples ou suggestions sur ce thème, je vous en remercie par avance.
      • [^] # Re: La structure de mon fichier

        Posté par  . Évalué à 3.

        un truc du genre
        awk '/^\/\// { ntb=$2", " } /ST=/ { print ntb,$0 }' bd.txt

        j'explique :
        awk : nom du programme ;-)
        ' : début du programme awk

        /^\/\// { ntb=$2", " } : Pour chaque ligne qui commence par // je stocke dans la variable ntb le nom de la table.

        /ST=/ { print ntb,$0 }' : pour chaque ligne qui contient ST=, j'affiche la variable ntb puis la ligne.

        bd.txt : ton nom de fichier

        Url sympa sur awk: http://www.shellunix.com/awk.html

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.