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 :

Suite a une modification sur une ligne Supprimer les N linges entre deux balises [Python 3.X]


Sujet :

Python

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 18
    Points : 9
    Points
    9
    Par défaut Suite a une modification sur une ligne Supprimer les N linges entre deux balises
    Bonsoir

    J'ai un fichier de ce type que je souhaiterai recopier dans un autre et après l'avoir retravaillé comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    :/ BALISE1
    ......
    Linge a modifier
    LIGNEsupprier1
    ...
    LIGNEsupprierN
    :/ BALISE2
    Pour modifier :

    J'ai trouvé un script qui ressemble a ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    FileI = '/home/bruno/Bureau/In.txt'
    FileO = '/home/bruno/Bureau/Out.txt'
    Newline=''
     
    with open(FileI) as f:
        lines = f.readlines()
     
    newlines = []
     
    for line in lines:
        if 'Ligne à modifier' in line:
            newlines.append(Linge Retravaillée +'\n')
     
        else:
            newlines.append(line)
     
    with open(FileO, mode='w') as f:
        f.writelines(newlines)
    Mon soucis c'est que je n'arrive pas à supprimer les lignes qui sont après la Linge Retravaillée et la Balise2

    Entre le If et Else
    J'ai essayé avec un boucle While du style
    While Balise not in line:
    newlines.remove ....

    apres j'ai mis delete a la place de remove...mais il faut mettre quelquechose entre les parenthèses... mais comme ça change à chaque fois je ne peux me reposer sur une chaine de caractère. Le nombre de ligne variant entre la Linge Retravaillée et la Balise2, je ne peux pas non plus me reposer sur un chiffre

    Après j'ai pensé a une boucle For ... mais avec len() autant je sais faire pour compter le nombre de caractère mais le nombre de ligne...je n'ai pas trouvé
    Comme vous pouvez le constater, ça n'a rien donné de concluant c'est pour ceci que je me suis permis de vous écrire pour avoir de l'aide sur ce sujet..

    En rédigeant ce poste, en attendant une réponse, suite à ma bouteille a la mer, je vais voir pour calculer le nombre de lignes que j'ai entre les deux balises...peut-être que ça m'aidera

    Merci d'avance pour votre aide

    Cordialement

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 301
    Points : 6 781
    Points
    6 781
    Par défaut
    Salut,

    Je ne sais pas si c'est important mais tu vois que tu écris linge au lieu de ligne ?

    Ensuite comment définis-tu ceci: newlines.append(Linge Retravaillée +'\n')
    Explique "Linge Retravaillée"

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Salut,

    Je ne sais pas si c'est important mais tu vois que tu écris linge au lieu de ligne ?

    Ensuite comment définis-tu ceci: newlines.append(Linge Retravaillée +'\n')
    Explique "Linge Retravaillée"
    Bonsoir
    Toutes mes excuses.
    Je viens de changer le texte

    Cordialement

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 18
    Points : 9
    Points
    9
    Par défaut J'ai reussi en faisant comme ceci
    Bonsoir

    J'ai réussi à traiter mon problème en codant comme ceci

    Si des personnes souhaitent me donner des conseils pour l’optimiser je suis ouvert


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    FileI = '/home/bruno/Bureau/In.txt'
    FileO = '/home/bruno/Bureau/Out.txt'
    Flag=0
     
    with open(FileI) as f:
        lines = f.readlines()
     
    newlines = []
    for line in lines:
        if 'xxxxxxxxx' in line:
            Flag=0
            line2=line.split()
            print(line2)
            print(line2[2][-1])
            newlines.append(line2[0] + "      xxxxxxxxxxxxxxxxxxxxxxxxxxxxx(FILE="+line2[2][-9:-1]+')''\n')
            if line2[2][-1] == "," :
                print('j\'ai une nouvelle linge à traiter apres')
                Flag=1
        elif Flag == 1 : 
            print('Le Flag est à 1' + '' , line)
            Flag=2
        elif Flag == 2 : 
            print('Le Flag est à 2' + '' , line)
            Flag=3
            newlines.append(line)
        else:
            newlines.append(line)
     
    with open(FileO, mode='w') as f:
        f.writelines(newlines)

    Passez une excellente soirée

    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Supprimer les références sur une ligne supprimée
    Par nibors dans le forum Requêtes
    Réponses: 2
    Dernier message: 27/01/2017, 16h47
  2. .Append() a la suite d'une ligne d'un datagridview
    Par gastoncs dans le forum VB.NET
    Réponses: 0
    Dernier message: 11/03/2014, 18h11
  3. Empêcher un click sur une ligne supprimer
    Par Kraian dans le forum jQuery
    Réponses: 2
    Dernier message: 17/10/2013, 13h01
  4. Supprimer les espaces compris entre deux points virgules dans un fichier csv
    Par moctarim dans le forum Shell et commandes POSIX
    Réponses: 2
    Dernier message: 04/01/2013, 17h03
  5. recupérer une ligne supprimé d'un BindingSource
    Par Nnahaa dans le forum VB.NET
    Réponses: 2
    Dernier message: 24/06/2011, 21h25

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