Commande .replace + supprimer une ligne ne fonctionne pas. [Résolu]

Signaler
Messages postés
28
Date d'inscription
jeudi 19 novembre 2020
Statut
Membre
Dernière intervention
20 novembre 2020
-
Messages postés
28
Date d'inscription
jeudi 19 novembre 2020
Statut
Membre
Dernière intervention
20 novembre 2020
-
Bonjour, voici mon programme :

j'ai un problème avec ma commande ZRC je n'arrive pas a remplacer des mot et supprimer des lignes en même temps.

SI j'utilise ma commande seul :

lignes = file.readlines()
lignes[2] = " \n"

le texte devient=

Entete
maman

fils

sa fonctionne la ligne en question est supprimer et inversement :

for lignes in fi:
if ('[ENTETE]' in lignes): lignes = lignes.replace('[ENTETE]', 'TI'):

le texte devient:

TI
maman
papa
fils

mais tout en même fait supprimer le texte ou il reste seulement :
TI

et je ne c'est pas pourquoi pouvez m'aidez ?

import tkinter
from tkinter import *
from tkinter import filedialog
from tkinter.filedialog import askopenfilename
import os


def show_about():
    about_window = tkinter.Toplevel(window)
    about_window.title("Information")
    lb = tkinter.Label(about_window, text="Cette application a été crée par Paul Brun avec colobaration de Fred Barbier propriétaire de la bijouter du pecher\n Toute utilisation non autorisé est un délit et punis, le logiciel est proteger par 'article L. 113-1 du Code de la propriété intellectuelle et article L112-2,\n les œuvres encadrées par la protection accordée par le droit d’auteur, parmi lesquelles on compte les logiciels ")
    lb.pack()

    #def 2
def show_about1():
     about1_window = tkinter.Toplevel(window)
     about1_window.title("Help")
     lb = tkinter.Label(about1_window, text=" Si Erreur Réinstaller l'application, sinon contacter au 0650996149")
     lb.pack()

def cherche():
   cherche_file = filedialog.askopenfilename(initialdir="/Users/", title="Ouvrir txt", filetypes=(("Text Files,", "*.txt"),))
   cherche_file = open(cherche_file, 'r')
   ia = cherche_file.read()
   my_text.insert(END, ia)


def sauvegarder():
        cherche_file = filedialog.askopenfilename(initialdir="/Users/", title="Ouvrir txt", filetypes=
        (("Text Files,", "*.txt"),))
        cherche_file = open(cherche_file, 'w')
        cherche_file.write(my_text.get(1.0, END))

def ZRC():
    Directory = filedialog.askopenfilename(initialdir=r"C:\Desktop", title="Ouvrir",
                                filetypes=(("Text Files", "*.txt"),
                                           ("Python Files", "*.py"),
                                           ("all files", "*.*")))
    file = open(Directory, "r")
    lignes = file.readlines()
    lignes[2] = " .\n"
    lignes[3] = " .\n"
    lignes[6] = " .\n"
    lignes[7] = " .\n"
    lignes[8] = " .\n"
    lignes[9] = " .\n"
    lignes[10] = " .\n"
    lignes[11] = " .\n"
    lignes[12] = " .\n"
    file = open(Directory, "w")
    file.writelines(lignes)
    file.close()

    fi = open(Directory, 'r')
    fo = open('tempo.txt','w')

    for lignes in fi:
        if ('[ENTETE]' in lignes):  lignes = lignes.replace('[ENTETE]', 'TI')
        if ("TYPE = LIVRAISON" in lignes): lignes = lignes.replace("TYPE = LIVRAISON", "Reception")
        if ("NO BDL =" in lignes): lignes = lignes.replace("NO BDL =", "Z")
        if ("DAT BDL" in lignes): lignes = lignes.replace("DAT BDL" , "ZRC")
        if("DAT LIV ="in lignes): lignes = lignes.replace("DAT LIV =", " ")
        if("[LIGNES]"in lignes): lignes = lignes.replace("[LIGNES]", "LI;ARTICLE")
        if("REF FOU"in lignes): lignes = lignes.replace("REF FOU", "BRA")
        if("QTE ="in lignes): lignes = lignes.replace("QTE =", " ")
        if("PA BRUT"in lignes): lignes = lignes.replace("PA BRUT", " ")
        if("REMISE"in lignes): lignes = lignes.replace("REMISE", " ")
        if("PV TTC"in lignes): lignes = lignes.replace("PV TTC", " ")
        if("TVA"in lignes): lignes = lignes.replace("TVA", " ")
        if("LIBELLE ="in lignes): lignes = lignes.replace("LIBELLE =", "A01D;")
        if("GENCOD = "in lignes): lignes = lignes.replace("GENCOD = ", "FAUX")
        ligness = fi.readlines()

        print(lignes)
        fo.write(lignes)
        fi.close()
        fo.close()
        os.remove(Directory)
        os.rename('tempo.txt', Directory)
        ZRC()
        input('appuyer sur entrée ...')

window = tkinter.Tk()

window.title("Fred")
window.geometry("1080x720")
window.minsize(480, 360)
window.iconbitmap("fred.ico")
window.positionfrom("user")

label_welcome = tkinter.Label(window, text="Version 1.0", font=("Arial", 30))
label_welcome.pack()

#Exporter et importer

mainmenu = tkinter.Menu(window)

first_menu = tkinter.Menu(mainmenu, tearoff=0)
first_menu.add_command(label='Importer', command=cherche)

my_text = Text(window, width=40, height=30, font=("Helvetica", 16))
my_text.pack(pady=20)

first_menu.add_command(label='Sauvegarder', command=sauvegarder)
first_menu.add_command(label="Quitter", command=window.quit)

second_menu = tkinter.Menu(mainmenu, tearoff= 0)
second_menu.add_command(label="Information", command=show_about)
second_menu.add_command(label="Help", command=show_about1)

tree_menu = tkinter.Menu(mainmenu, tearoff=0)
tree_menu.add_command(label="ZRC", command=ZRC)

mainmenu.add_cascade(label="Fichier", menu=first_menu)
mainmenu.add_cascade(label="Autre", menu=second_menu)
mainmenu.add_cascade(label="Exporter", menu=tree_menu)
window.config(menu=mainmenu)


window.mainloop()

1 réponse

Messages postés
662
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
29 novembre 2020
80
Bonjour,

ligness = fi.readlines()
: tu lis l'ensemble du fichier en pleine boucle de lecture, bizarre

Moi je laisserai ZRC comme elle est et je referai une autre fonction à la suite qui éliminerait les lignes voulues

(voir ton appel précédent)

Je l'ai fait, ca marche super bien et sans prise de tete ...
Messages postés
28
Date d'inscription
jeudi 19 novembre 2020
Statut
Membre
Dernière intervention
20 novembre 2020

bonsoir, j'ai trouver rien a voir a cause des boucle mais du :
from tkinter import filedialog qui fesait tout buguer il faut seulement utiliser
from tkinter.filedialog import askopenfilename