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

Python Discussion :

Récupération d'un bloc de ligne


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Par défaut Récupération d'un bloc de ligne
    Bonjour a vous cher Développezien ( ou -zoi au choix )

    j'ai un probleme sur le parsage d'un passage d'un texte:

    pin_eq_tr : "gnd=gnd vd=vd sub=esd vd=vd vd=vd gnd=gnd gnderight=gnde sub=esd sub=esd vd1v0=vd vd=vd";
    cellule1(afzesf) {

    et j'aimerais récupérer pin_eq_tr : "gnd=gnd vd=vd sub=esd vd=vd vd=vd gnd=gnd gnderight=gnde sub=esd sub=esd vd1v0=vd vd=vd";

    mon probleme est d'arriver à récupérer toujours la meme chose meme si le passage prend plus de ligne

  2. #2
    Membre Expert

    Homme Profil pro
    Diverses et multiples
    Inscrit en
    Mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : Mai 2008
    Messages : 662
    Par défaut
    La question est un peu vague… Je vais partir du principe que le passage à récupérer commence par “pin_eq_tr :” en début de ligne, et finit par le premier “;” en fin de ligne…

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    sample_data = ['quelques lignes', 'avant les données', 'à récupérer', 'pin_eq_tr : "gnd=gnd vd=vd sub=esd vd=vd', 'vd=vd gnd=gnd gnderight=gnde', 'sub=esd sub=esd vd1v0=vd vd=vd";', 'cellule1(afzesf) {']
     
    reading_data = False
    data = ""
    for l in sample_data:  # Émule une lecture de fichier texte ligne à ligne
        if reading_data:
            data = "".join((data, l))
        elif l.startswith('pin_eq_tr :'):
            data = l
            reading_data = True
        if reading_data and l.endswith(';'):
            reading_data = False
     
    print(data)
    Attention, code python3

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Par défaut
    oui le bloc se finit bien par un ";" mais peut prendre une ou plusieurs ligne

  4. #4
    Membre Expert

    Homme Profil pro
    Diverses et multiples
    Inscrit en
    Mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : Mai 2008
    Messages : 662
    Par défaut
    Eh ben, c’est bon, mon code devrait marcher, normalement –*du moment que tu lis bien ton fichier lignes à lignes, comme ça*:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    reading_data = False
    data = ""
    with open('path/to/file', 'r') as data:
        for l in data:  # Émule une lecture de fichier texte ligne à ligne
            if reading_data:
                data = "".join((data, l))
            elif l.startswith('pin_eq_tr :'):
                data = l
                reading_data = True
            if reading_data and l.endswith(';'):
                reading_data = False
     
    print(data)
    Note que là, tu ne récupères qu’un seul ensemble “pin_eq_tr”, si tu en attends plusieurs, utilise un liste de strings au lieu d’une seule string, pour data…

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/02/2007, 17h24
  2. récupération d'arguments de la ligne de commande
    Par Jérémy Lefevre dans le forum C
    Réponses: 2
    Dernier message: 07/11/2006, 10h53
  3. [CSS] Blocs en ligne
    Par Linaa dans le forum Mise en page CSS
    Réponses: 14
    Dernier message: 20/12/2005, 11h25
  4. [display] Affichage de blocs "en ligne" (inline)
    Par _Mac_ dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 04/11/2005, 12h02
  5. ListBox : récupération du numéro de la ligne
    Par Argonz dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/11/2003, 08h17

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