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 :

Comment écrire dans un fichier sans tout effacer


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 60
    Par défaut Comment écrire dans un fichier sans tout effacer
    Bonjour, quand je charge un fichier, et que je demande à écrire dedans, ça me remplace tout ce qu'il y avait avant par la chaine que je viens d'entrer.

    Code fichier.txt : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    lundi
    mardi
    mercredi
    jeudi
    vendredi
    dimanche

    Je veux insérer "samedi" après "vendredi", je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    fic = open('fichier.txt','w')
    fic.seek(5) #positionner le curseur en position 5
    fic.write('samedi')
    fic.close()
    Mais cela efface tout dans le fichier, et je me retrouve avec :
    Code fichier.txt : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
         samedi

    Merci de m'aider

  2. #2
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 47
    Par défaut
    Salut

    Ouvre ton fichier en mode ajout ("a")

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    fic = open('fichier.txt', 'a')
    fic.seek(5) #positionner le curseur en position 5
    fic.write('samedi')
    fic.close()

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 60
    Par défaut
    Ca fonctionne pour l'ajout, mais ça ajoute 'samedi' tout à la fin.
    Comment faire pour l'ajouter juste après 'vendredi\n' ?

    J'ai essayé cela mais sans succès :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    fic = open('fichier.txt','a')
    for ligne in fic:
        if(ligne == 'vendredi\n'):
            ligne+= 'samedi\n'
            fic.write(ligne)
    fic.close()

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 293
    Par défaut
    Tu ne peux pas modifier le contenu d'un fichier. Il faut:
    - recopier tout ton fichier jusqu'à vendredi,
    - insérer "samedi"
    - recopier la suite, càd "dimanche" .

    Pour cela tu commences par :
    - créer un fichier provisoire, puis
    - tu supprimes l'ancien, et enfin,
    - tu renommes ton fichier provisoire.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 60
    Par défaut
    Oui merci c'est une bonne solution

  6. #6
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 47
    Par défaut
    Salut

    Un peu tard peut être mais ne serait-ce pas plus rapide et efficace de se déplacer dans le fichier plutôt que de recopier son contenu à chaque fois ?

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

Discussions similaires

  1. Comment écrire dans un fichier texte sans sauter les lignes
    Par gogéta91 dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 29/07/2008, 18h56
  2. [JDOM] comment écrire dans un fichier xml sans écraser son contenu
    Par solawe dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 25/03/2008, 14h11
  3. [Delphi] Comment écrire dans un fichier texte ?
    Par Mickey.jet dans le forum Débuter
    Réponses: 2
    Dernier message: 01/04/2006, 14h00
  4. [C#] Comment écrire dans un fichier ?
    Par guillaume16 dans le forum C#
    Réponses: 9
    Dernier message: 30/03/2006, 13h39
  5. [JAR] Comment écrire dans un fichier properties dans un jar
    Par Alec6 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 05/10/2004, 15h16

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