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