Commande .replace + supprimer une ligne ne fonctionne pas.

Résolu/Fermé
mister431 Messages postés 56 Date d'inscription jeudi 19 novembre 2020 Statut Membre Dernière intervention 24 juin 2022 - 20 nov. 2020 à 14:39
mister431 Messages postés 56 Date d'inscription jeudi 19 novembre 2020 Statut Membre Dernière intervention 24 juin 2022 - 20 nov. 2020 à 17:51
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()
A voir également:

1 réponse

Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
20 nov. 2020 à 17:11
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 ...
0
mister431 Messages postés 56 Date d'inscription jeudi 19 novembre 2020 Statut Membre Dernière intervention 24 juin 2022
20 nov. 2020 à 17:51
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
0