Filedialog tkinter modifier mot. - Page 2

Résolu
  • Votes
  • Date
  • Date décroissante
  1. if ([2] in lignes)


    tu es sur que la ligne contient [2] ????

    Et je t'ai dis dans mon message précédent que supprimer une ligne, c'est tout simplement ne pas la recopier dans tempo, donc ne pas faire
    fo.write(lignes)


    j'ai fait ce cis -> j'ai fait ceci
    1. Je vois se que tu veut dire ^^ mais vraiment je ne vois pas du tout comment faire desoler ^^"
      es ce que tu peut donner un exemple ?
    2. nan la ligne ne contient pas [2] je veut juste supprimer la numéro 3 (car la ligne 1 = 0 2= 1 etc...)
    3. je viens de comprend j'ai ceci :

      cela supprime bien ma ligne numéro deux mais le problème cela me supprime aussi tout le reste

      exemple :

      ENTETE
      fraise
      papa
      mama

      sa devient :

      TI
      (le reste supprimer)

      def ZRC():
          mon_fichier = askopenfilename(initialdir ="C:/Phil/dev/python",filetypes =(("Text File", "*.txt"),("All Files","*.*")),title = "Selectionner fichier txt")
      
          fi = open(mon_fichier, '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()
              ligness[2] = " .\n"
      
  2. Bonjour,

    "nan la ligne ne contient pas [2]" : c'est pas nan, c'est non...
    ben alors si elle ne contient pas [2], pourquoi testes-tu son contenu :
    if ([2] in lignes):


    for lignes in fi:

    ici, la variable s'appelle lignes

    ligness = fi.readlines()

    ici, la variable s'appelle ligness (avec 2 s) ?

    de plus tu n'as pas vraiment compris la mécanique:
    avec la boucle for, on lit ligne par ligne
    avec readlines, on lit tout le contenu du fichier
    et en plus, tu mets ça dans la boucle for qui est déjà en train de lire : quel cirque !

    Et ça, ca fait quoi : ??????
    ligness[2] = " .\n"


    Moi, pour faire simple, je laisserais la fonction ZRC comme elle est (remplacement de texte)
    ensuite, j'appellerais une autre fonction pour supprimer les lignes

    Admettons que l'on veuille supprimer les lignes 2 et 3
    même mécanique que ZRC:
    on ouvre les fichiers tempo et mon_fichier
    on lit avec une boucle for
    dans la boucle on met un compteur pour compter les lignes
    et si le compteur=2 ou compteur = 3, on ne l'écrit pas dans tempo
    1. Bonjour, de base :

      ligness[2] = " .\n"


      devait supprimer ma ligne numéro 3 mais malheureusement elle supprime tout sauf TI sans aucune explication mais sans cette commande tout fonctionne.

      enfaite des fois j'ai l'impression aussi vous ne comprenez pas se que je recherche
      avec ZRC je veut remplacer des mot et supprimer une ligne qui met sert pas.

      exemple :

      ENTETE
      Livraison = domicile
      fjsdgfnig@gmail.com
      toto = 13
      argent : 13euro

      la entete devient TI etc...

      mais par exemple je veut que @gmail disparait car elle apparait tout le temps a la même ligne du texte mais je peut pas faire .replace sa serait tricher il faut que je la supprime et laisser le reste. voila
    2. Bon merci de votre aide je vais conclure se post car il a été résolu en partie je vais refaire un post merci pour votre aide
  3. Il faut absolument que tu fasse comme je te l'indique, ca marche à coup sur, je l'ai testé

    abandonne tes ligness[2] = " .\n"
    et tes doubles lectures

    moi, j'ai fait une fonction remplacer(), puis une fonction supprimer(), je les appelle l'une apres l'autre

    et ca marche bien
    Précédent
    • 1
    • 2