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 :

Boucler une ligne dans un fichier et fermer la boucle si mot est dans la ligne


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 14
    Points : 3
    Points
    3
    Par défaut Boucler une ligne dans un fichier et fermer la boucle si mot est dans la ligne
    bonjour
    j'aimerais faire une boucle sur une ligne et fermer la boucle si mot est sur la ligne suivante
    exemple:

    j'aimerais répété la ligne avec le 2499 lire toutes les ligne en rajoutant 2493 entre chaque ligne et finir la copy de ligne si 2498 a la ligne suivante
    mon fichier :

    text.txt

    résultat :
    2499
    ligne
    2493
    ligne suivante
    2493
    ligne suivante
    2493
    si 2498 stopper la lecture et changer les code 4 par 1110 comme je l'es fait au début de mon code

    1er code pour modifier ok
    etoile4 en 5.py
    la je n'arrive pas a faire ma boucle sur la ligne en rajoutant 2493 a chaque ligne et finir si code 2499
    boucle d'un text3.py


    merci de votre aide

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 721
    Points : 31 044
    Points
    31 044
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par amstrad6128 Voir le message
    j'aimerais faire une boucle sur une ligne et fermer la boucle si mot est sur la ligne suivante

    j'aimerais répété la ligne avec le 2499 lire toutes les ligne en rajoutant 2493 entre chaque ligne et finir la copy de ligne si 2498 a la ligne suivante
    Bonjour
    Tu ne voudrais pas nous redire tout ça en mettant les mots adéquats dans le bon ordre ? Que veut dire "faire une boucle sur une ligne" ? (surtout que boucler sur "un" truc c'est un peu idiot !!!) et "fermer la boucle" ?

    Et que veut dire aussi "avec le 2499" ? C'est quoi un "2499" ?? Un code de la police de New York ???
    Surtout que ton fichier ne contient nulle part la chaine 2499 (ni 2498 ni 2493 ni même la chaine "24" en fait)

    Je ne peux que te renvoyer sur la citation de Boileau "Avant donc que d’écrire apprenez à penser car ce qui se conçoit bien s'énonce clairement".

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 14
    Points : 3
    Points
    3
    Par défaut python boucler une ligne dans un fichier et fermer la boucle si mot est dans la ligne
    ok je reprend mes explication j'ai un fichier txt il fait 500ko max

    j'ai des ligne avec des balises divers " exemples: *410004+0000000000000700 42....+ ( 700 est ma balise mais sa peu etre un autre numero)
    les ligne suivante représente des points avec numéros de ligne, numéros du point "7000" angles verticale après "21.322+" angle horizontale après 22.322+ et la distance après 31.00+ hauteur avec "87..10+

    comme exemple si dessous:

    *110007+0000000000007000 21.322+0000000014985065 22.322+0000000010106353 31..00+0000000000083961 51..1.+000000000000+000 87..10+0000000000001530

    mon fichier ressemble donc a :

    410004+0000000000000700 42....+
    410005+point suivant angle horizontale .....
    410004+0000000000000600 42....+
    410005+point suivant angle horizontale .....
    410004+0000000000002499 42....+
    410005+point suivant angle horizontale .....
    410006+point suivant angle horizontale .....
    410007+point suivant angle horizontale .....
    410008+point suivant angle horizontale .....
    410009+00000000000002498 42....+
    410010+point suivant angle horizontale .....

    j'aimerais que lorsque j'ai "un code" ex: 410004+0000000000002499 42....+
    il copie cette ligne sur les lignes suivante jusqu'a rencontré une ligne avec le code 2498 pour lui indiqué la fin de la repetition

    exemple du resultat :
    410004+0000000000002499 42....+
    410005+point suivant angle horizontale .....
    410004+0000000000002499 42....+
    410006+point suivant angle horizontale .....
    410004+0000000000002493 42....+
    410007+point suivant angle horizontale .....
    410004+0000000000002493 42....+
    410008+point suivant angle horizontale .....
    410009+00000000000002493 42....+

    fin des points avec la ligne des "balises en 2493 " si "balise 2498" trouvé et modifié en 2493

    suite de lecture du fichier jusqu'à recommencer l'opération si autre "balise 2499" trouvé

    410008+point suivant angle horizontale .....
    410008+point suivant angle horizontale .....

    j'aimerais modifier les lignes qui suive une" balise 2499 "en amont les rajouter aux lignes suivantes :lignes plus ligne avec balise modifier en "2493 jusqu'à rencontrer une ligne avec une balise "2498" et modifier ce dernier en "2493
    puis continuer ma lecture de fichier ( voire exemple c plus parlant

    j'espere avoire été plus claire
    ( je suis géomètre et je rentre ces code avec mon appareil )

    merci de votre aide

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    trouve la ligne.py

    je détecte les lignes avec la balise " 2499 "
    mais j'arrive pas a lire les lignes suivante jusqu'à la ligne avec la balise " 2498 "

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 721
    Points : 31 044
    Points
    31 044
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par amstrad6128 Voir le message
    410005+point suivant angle horizontale .....
    410004+0000000000002499 42....+
    410005+point suivant angle horizontale .....
    410006+point suivant angle horizontale .....
    410007+point suivant angle horizontale .....
    410008+point suivant angle horizontale .....
    410009+00000000000002498 42....+
    410010+point suivant angle horizontale .....

    j'aimerais que lorsque j'ai "un code" ex: 410004+0000000000002499 42....+
    il copie cette ligne sur les lignes suivante jusqu'a rencontré une ligne avec le code 2498 pour lui indiqué la fin de la repetition

    exemple du resultat :
    410004+0000000000002499 42....+
    410005+point suivant angle horizontale .....
    410004+0000000000002499 42....+
    410006+point suivant angle horizontale .....
    410004+0000000000002493 42....+
    410007+point suivant angle horizontale .....
    410004+0000000000002493 42....+
    410008+point suivant angle horizontale .....
    410009+00000000000002493 42....+
    Ok, là ça va mieux (on passera sur la formulation "il copie cette ligne sur les lignes suivantes" que j'aurais formulé par "il répète cette ligne après avoir affiché la suivante")...

    Donc un algo de ce type devrait le faire
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    with open(fichier, "r") as fp:
    	repeat=None
    	for ligne in fp:
    		print(ligne)
    		if "2499" in ligne:
    			repeat=ligne
    			continue
    		# if
    		if "2498" in ligne:
    			repeat=None
    			continue
    		# if
    		if repeat is not None: print(repeat)
    	# for
    # with

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 14
    Points : 3
    Points
    3
    Par défaut question sur ton code
    sa marche tu ma drôlement aidé merci si tu peu m'aider a repondre a c question merci :

    mon code modifié avec le tiens :

    tk code 4 et 93 en test hs.py
    peu tu me dire pourquoi dans mon code

    ---je n'arrive pas a changer les "2499 en "2493" et "2498" en "2493" avec la méthode .replace ?

    ---je n'arrive pas a écrire la répétition des lignes sur la suivante (ton code) dans mon f2.write(str(fp)) ou f2.write() ?

    ---si je veux faire une répétition de ligne sur la ligne suivante avec d'autre balise esque j'ai juste a recopier les if en les modifients ?

    [[[[ en resumer : j'aimerais : ]]]]

    --- changer les "2499 en "2498" ainsi que "2498 en 2493" dans la repetition des lignes sur la ligne suivante

    ---pouvoir faire mes modification sur mes balise (balise dissocier de la répétition des lignes )et les modifier, exemple : méthode .replace (si je fais cette méthode du coup j'ai des balises en double les 2499 changé en 2493 du debut et celle de fin=
    balise 4 en 1103\n1503\n2453 et balise 5 en 1113\n1513\n2463
    ---enregistrer le fichier modifier dans (f2) fichier modifier.txt



    je te remerci beaucoup pour ton aide ...et de ton temps
    Fichiers attachés Fichiers attachés

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 14
    Points : 3
    Points
    3
    Par défaut s ne marche pas ?
    test de la répétition avec plusieurs identifient différent

    test 2499 et 8999t.py

    ok mais j'ai pas encore trouver comment enregistre avec la méthode write et append pour les changer en 2493 et 8993

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 14
    Points : 3
    Points
    3
    Par défaut teste d'enregistrement de la repetition
    salut,
    je pensais intégrer a chaque boucle une méthode write ,a et après faire mon replace (a,b)
    es que je peu mettre toutes mes balises dans une liste et faire les changement ? pour moi sa serais mieux de rester dans une chaîne pour être sur de ne pas faire d'erreur ??
    merci de votre aide

  9. #9
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 038
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 038
    Points : 8 405
    Points
    8 405
    Par défaut
    salut,

    je sais pas pour les autres mais perso entre l'orthographe, les explications et la présentation, à la fois je pige rien (c'est pourtant pas faute d'essayer), et à la fois ça donne pas réellement envie de s'intéresser (et donc d'aider)

    est-ce que tu pourrais reprendre tous les éléments stp ? depuis le début, le fichier d'entrée, le fichier attendu en sortie, le traitement qui est effectué, pourquoi on prend telle valeur, pourquoi elle est en plein milieu d'une séquence de nombres plus longue, pourquoi "2498" veut dire ci ou ça, quand est-ce qu'on doit lire/traiter une nouvelle ligne, quand est-ce qu'on répète, quand est-ce qu'on écrit, d'où provient le fichier à l'origine, est-ce qu'il a un format particulier, quelle est la finalité du programme etc. etc. etc.

    autant d'éléments qui permettront de comprendre ce que tu veux et d'y répondre, sachant qu'on est pas à ta place/dans ta tête pour comprendre ce que tu veux dire

    ah et aussi :

  10. #10
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 721
    Points : 31 044
    Points
    31 044
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par BufferBob Voir le message
    je sais pas pour les autres mais perso entre l'orthographe, les explications et la présentation, à la fois je pige rien (c'est pourtant pas faute d'essayer), et à la fois ça donne pas réellement envie de s'intéresser (et donc d'aider)
    C'est exactement ça. Je suis passé plusieurs fois mais punaise je suis fatigué rien qu'à le lire.

    Bon, allez j'y retourne...

    Citation Envoyé par amstrad6128 Voir le message
    test de la répétition avec plusieurs identifient différent
    Code python : 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
    print("START")
    fp = open(r"C:\Users\arnaud\Desktop\test python\text ligne.txt", "r")
    repeat=None
    for ligne in fp:
    	print(ligne)
    	if "2499" in ligne:
    		repeat=ligne#repete la ligne 2499
    		continue
    		# if
    	if "2498" in ligne:
    		repeat=None
    		continue
    		# if
    	# for
        if "8999" in ligne:
            repeat=ligne
            continue
     
        if "8998" in ligne:
            repeat=None
            continue
     
        if repeat is not None: print(ligne)#ecrit test en boucle plus la ligne suivante
    # with
    fp.close()
    Mouais. Ca t'aurait dérangé d'indenter de façon équivalente afin que le code soit plus facile à relire ? Et utiliser astucieusement mes commentaires "# for" et "# with" (qui signifient "fin de boucle" et "fin de with") en mettant justement le premier à la fin de la boucle et en supprimant le second vu que t'as supprimé le "with" ??? Franchement on n'a pas l'impression que tu aies vrament envie de te mettre à Python.
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    for ligne in fp:
    	print(ligne)
    	if "2499" in ligne or "8999" in ligne:
    		repeat=ligne
    		continue
    	# if
    	if "2498" in ligne or "8998" in ligne:
    		repeat=None
    		continue
    	# if
    	if repeat is not None: print(ligne)
    # for

    Ensuite, s'il doit y avoir un 3°, 4°, 5° code utiliser ce type de syntaxe va vite devenir bien coton. D'où l'utilisation de quelques outils Python qu'il te faut connaitre. Ex
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    for ligne in fp:
    	print(ligne)
    	if any(x in ligne for x in ("2499", "8999")):
    		repeat=ligne
    		continue
    	# if
    	if any(x in ligne for x in ("2498", "8998")):
    		repeat=None
    		continue
    	# if
    	if repeat is not None: print(ligne)
    # for
    Rajouter ensuite d'autres codes éventuels se fera de façon triviale.

  11. #11
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    merci de vos reponses

    pour enregistrer la repetition de IF dans un dossier "text_rec " je dois : ?

    repetition exercice enregistrement.py

    je voie pas trop comment enregistrer la repetition une fois terminé

    merci de votre aide

  12. #12
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 721
    Points : 31 044
    Points
    31 044
    Billets dans le blog
    1
    Par défaut
    Bon, BufferBob t'a dit d'insérer ton code dans tes posts. Je ne t'ai rien dit à ce sujet car je pensais que me voir moi le faire te donnerait l'inspiration/l'idée/la révélation/l'intuition/l'illumination mais non, rien. Crassou un jour, crassou toujours.
    Donc fuck et alerte modo.

  13. #13
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    je pensais que mon code était incruster avec les pièces jointes ?

  14. #14
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    @amstrad : Sver a été très patient. Moi même j'aide beaucoup, mais quand j'ai vu comment la chose était présentée, j'ai même pas eu envie de répondre. Donc là il t'a donné des indications sur la présentation de ton problème, et tu ne donnes pas plus d'éléments pour que l'on puisse t'aider. Je comprends son désarroi, tu as trop tiré sur la corde !
    Faire un bon poste, ca prend du temps. Beaucoup de temps. Mais en même temps s'il est bien fait on a la réponse rapidemment. Dans l'autre cas on a mis 5 minutes à faire le post, mais 1 semaine après on est toujours pas dépanné ... Donc prends le temps de faire un post propre, ce n'est pas du temps de perdu !

  15. #15
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    Citation Envoyé par amstrad6128 Voir le message
    je pensais que mon code était incruster avec les pièces jointes ?
    Il faut utiliser les balise [/CODE] (le bouton #, lorsque tu postes ton messages, et tu copie/colle ton code dedans). La pièce jointe oblige a télécharger le code, le mettre quelquepart sur notre machine, etc ... Alors qu'en le lisant simplement, on pourrait déjà te dire des choses. Donc évite les pièces jointes.

  16. #16
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    bonjour
    j'aimerais juste savoir comment enregistre le scripte de Sve@r (répète cette ligne après avoir affiché la suivante) dans un nouveau fichier fsave.txt

    merci pour l'explication de la publication de code

    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
    print("test")
     
    with open(r"C:\Users\Desktop\python 3\text.txt", "r") as fp:
        with open(r"C:\Users\Desktop\python 3\text_rec.txt", "w") as fsave:
            repeat = None
            fsave = fp.readline()
            for ligne in fp:
                print(ligne)
                fsave.write(ligne)
                if "2499" in ligne:
                    repeat = ligne
                    continue
                # if
                if "2498" in ligne:
                    repeat = None
                    continue
                 # if
                if repeat is not None:
                    print(repeat)
                    fsave.write(repeat)
            # for
     
    # with
        # with
    merci de vos reponses
    Fichiers attachés Fichiers attachés

  17. #17
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 721
    Points : 31 044
    Points
    31 044
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par amstrad6128 Voir le message
    j'aimerais juste savoir comment enregistre le scripte de Sve@r (répète cette ligne après avoir affiché la suivante) dans un nouveau fichier fsave.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        with open(r"C:\Users\boe\Desktop\python 3\text_rec.txt", "w") as fsave:
            repeat = None
            fsave = fp.readline()
    Il n'y a pas quelque chose qui te gêne là ???

    Citation Envoyé par amstrad6128 Voir le message
    Python ne te vomit pas un "AttributeError" ici ???

    Citation Envoyé par amstrad6128 Voir le message
    Pffff quelle catastrophe !!!

  18. #18
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    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
    print("debut test")
     
    with open(r"C:\Users\Desktop\python 3\text.txt", "r") as fp:
        with open(r"C:\Users\Desktop\python 3\text_rec.txt", "w") as fsave:
            repeat = None
     
            for ligne in fp:
                print(ligne)
                fsave.write(ligne)
                # if
                if "2499" in ligne:
                    repeat = ligne
                    continue
                # if
                if "2498" in ligne:
                    repeat = None
                    continue
                # if
                if repeat is not None:
                    print(repeat)
                    fsave.write(repeat)
            # for
        # with
    # with
    print("fin de lecture dans le terminale")
    ai je bien corrigé??

    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
    32
    33
    34
    35
    print("debut test")
     
    with open(r"C:\Users\Desktop\python 3\text.txt", "r") as fp:
        with open(r"C:\Users\Desktop\python 3\text_rec.txt", "w") as fsave:
            repeat = None
     
            for ligne in fp:
                print(ligne)
                fsave.write(ligne)
                # if
                if "2499" in ligne:
                    # changement des lignes en 2499 => 2493
                    repeat = ligne.replace("2499", "2493")
                    continue
                # if
                if "2498" in ligne:
                    repeat = None
                    continue
                # if
                if repeat is not None:
                    print(repeat)
                    fsave.write(repeat)
            # for
        # with
    # with
    print("fin de lecture dans le terminale")
     
    with open(r"C:\Users\Desktop\python 3\text_rec.txt", "r") as fsave:
        with open(r"C:\Users\Desktop\python 3\text_rec_replace.txt", "w") as fsave2:
            for l in fsave:
                # changement des lignes en 2493
                fsave2.write((l.replace("2499", "2493").replace("2498", "2493"))
            # for
        # with
    # with
    je voudrais remplacer les chaînes de caractères 2499 en 2493 et les 2498 en 2493 pour sa je re ouvre le fichier avec les repetitions
    et je fais mes changement dans un 2eme fichier fsave2 et j'ai une erreur SyntaxError: unexpected EOF while parsing

    merci de m'aider

  19. #19
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 898
    Points : 6 663
    Points
    6 663
    Par défaut
    Vérifie tes parenthèses. (Le top est d'utiliser un éditeur de code qui le fait pour toi en illuminant les paires de parenthèses ouvrantes et fermantes.)

  20. #20
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    merci

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/06/2017, 21h25
  2. Réponses: 3
    Dernier message: 30/05/2017, 10h59
  3. Réponses: 2
    Dernier message: 18/11/2013, 15h43
  4. lister fichiers d'un repertoire dont un mot est dans le contenu
    Par italiasky dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 22/02/2010, 17h45
  5. Réponses: 5
    Dernier message: 08/05/2006, 00h39

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