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 :

écriture dans un fichier [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2018
    Messages : 15
    Par défaut écriture dans un fichier
    Bonjour,
    j'ai voudrais remplacer une ligne d'un fichier par une nouvelle ligne,
    je connait la ligne que je veut remplacer
    je n'est pas trouver quel fonction utiliser a fin de faire cela
    je suis partit dans dans quelque chose qui ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def remplace(score,n_score,liste_score):
         #methode
        fichier = open("score.txt","w")
        if line.startswith("".join(liste_score[n_score])):
            line = score
        fichier.write(line)
        print(line)
        fichier.close()
    voila mon code qui n'est pas correct je voudrais savoir qu'elle fonction utilisé.
    Merci d'avance

    PS : je suis nouveau sur ce forum

  2. #2
    Membre très actif

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    Voir :
    https://python.developpez.com/cours/...=page_11#L11-H
    Ou encore :
    https://python.developpez.com/tutori...i-paris7/#LVII

    Et la documentation se situe là :
    https://docs.python.org/3/library/io...Base.readlines

    Tu as désormais tout ce qu'il te faut

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 172
    Par défaut
    Salut !

    Alors voilà ce que je propose:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # coding: utf-8
    import os
     
    with open(u'texte.txt', 'r') as texte, open(u'nouveau_texte.txt', 'w') as nouveau_texte:
        for line in texte:
            if "partie_de_phrase_a_effacer" in line:
                nouveau_texte.write(u'nouvelle ligne\n')
            else:
                nouveau_texte.write(line)
    os.remove(u'texte.txt')
    os.rename(u'nouveau_texte.txt', u'texte.txt')
    Le contenu de "texte.txt" est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    deffrrfrfrfrfr
    hdjkhkjhfdkjdh
    jbbdbcbcd,nbc
    partie_de_phrase_a_effacerieurhjdhhnsbznvzbvdbv jhjhdksh jshkh
    hdhgsddjskgkjhkjhq
    sjdlqkmlkdmkqmkdmk
    sjhdjhhq
    Voilà j'espère que ça convient

  4. #4
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2018
    Messages : 15
    Par défaut
    Merci a vous deux,
    Cela marche très bien
    Voici la partie fini, une petit question peut on combiner tout les .replace() en 1 seul ?

    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
    import os
    l = [['33'], ['65'], ['96'], ['369'], ['999774']]
     
    def remplace(score,a_remplacer):
         #methode
        a_remplacer = str(a_remplacer)
        a_remplacer = str(a_remplacer)
        a_remplacer = a_remplacer.replace('[',"").replace(']',"").replace("'","")
        with open(u'score.txt', 'r') as texte, open(u'nouveau_score.txt', 'w') as nouveau_texte:
            for line in texte:
                if a_remplacer in line:
                    nouveau_texte.write(u'{}\n'.format(str(score)))
                else:
                    nouveau_texte.write(line)
        os.remove(u'score.txt')
        os.rename(u'nouveau_score.txt', u'score.txt')
     
    remplace(87,l[1])
    Merci pour l'aide

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 172
    Par défaut
    Bonjour,

    Je ne comprends pas ces deux lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    a_remplacer = str(a_remplacer)
    a_remplacer = str(a_remplacer)
    Elles font exactement la même chose, non ?

    Sinon pour le replace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for symbole in ["]","[","'"]:
         if symbole in a_remplacer:
         a_remplacer=a_remplacer.replace(symbole,"")
    Je pense que ça devrait le faire, je n'ai pas testé...

    Et à vrai dire je ne comprends pas à quoi sert le replace....Que contient "score.txt" ?

    Au temps pour moi je viens de capter.... Bon voilà ce que j'ai et qui marche :

    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
    import os
    l = [['33'], ['65'], ['96'], ['369'], ['999774']]
     
    def remplace(score,a_remplacer):
         #methode
        a_remplacer = str(a_remplacer)
        for symbole in ["]","[","'"]:
            if symbole in a_remplacer:
                a_remplacer=a_remplacer.replace(symbole,"")
        with open(u'score.txt', 'r') as texte, open(u'nouveau_score.txt', 'w') as nouveau_texte:
            for line in texte:
                if a_remplacer in line:
                    nouveau_texte.write(u'{}\n'.format(str(score)))
                else:
                    nouveau_texte.write(line)
        os.remove(u'score.txt')
        os.rename(u'nouveau_score.txt', u'score.txt')
     
    remplace(87,l[1])

  6. #6
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2018
    Messages : 15
    Par défaut
    Parfait merci plus aucun problème, effectivement c'était une erreur le a_remplacer deux fois
    Voila le code que tu m'a donné correcte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for ch in ["]","[","'"]:
        if ch in a_remplacer:
            a_remplacer=a_remplacer.replace(ch,"")

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par Nalofox Voir le message
    Voici la partie fini, une petit question peut on combiner tout les .replace() en 1 seul ?
    Votre code remplace toutes les occurrences de l[1] dans le fichier alors qu'au début vous ne vouliez remplacer que la n-ième occurrence.
    note: çà remplace certes mais çà ne fait pas ce que vous vouliez au départ.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2018
    Messages : 15
    Par défaut
    Fawn_noOb c'est ma fonction de lecture qui me sort la liste comme cela.
    wiztricks je n'ai pas bien compris, mais ici j'appelle l[1] pour le test sinon c le programme du dessus qui défini qu'elle occurrence appelé l[n]
    le replace est juste par que mon programme de lecture me donne une liste de cette forme [['33'], ['65'], ['96'], ['369'], ['999774']]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/08/2005, 11h57
  2. [PERL] Problème lecture/écriture dans un fichier
    Par LE NEINDRE dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2005, 13h15
  3. Problème d'écriture dans un fichier xml
    Par vanoou dans le forum C++Builder
    Réponses: 1
    Dernier message: 13/07/2005, 02h28
  4. Passer à la ligne lors de l'écriture dans un fichier
    Par hams dans le forum Assembleur
    Réponses: 4
    Dernier message: 17/04/2005, 19h25
  5. [JUnit] Junit écriture dans un fichier
    Par mikael35 dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 10/08/2004, 13h11

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