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 :

Ecriture dans un fichier


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 25
    Par défaut Ecriture dans un fichier
    salut,

    J'aimerais écrire dans un fichier qui contient déjà quelquechose. Le problème est que je voudrais écrire au milieu du fichier (pas que à la fin) donc le mode "a" va pas et le mode "w" efface le fichier. (J'aimerais d'ailleurs écrire pardessus ce qui existe déjà (remplacement de données numériques)).

    Existe-t-il un moyen de faire ça ou faut-il que je prenne le contenu, le modifie, et le réécrire dans un nouveau fichier ?

    En passant j'ai pas bien compris la différence entre les modes "r","w","a" et "r+","w+","a+".

    Voilà, merci

  2. #2
    Membre émérite Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Par défaut
    Salut,

    r = read = lecture (le fichier doit déjà exister => ouverture en lecture seul)
    w= write = écriture (nouveau fichier) (s'il existe déjà il est écraser)
    a = apend = ajout (si le fichier existe déjà, il concerve le contenu, sinon, il crée le fichier)

    r+ = le fichier existe déjà et est accessible en lecture et ecriture
    w+= le fichier sera créer (ou ecraser) et sera accessible en lecture et ecriture
    a+ = Si le fichier existe, il reste intacte, sinon il est créer et à un accès en lecture et ecriture

    voilà voilà.

    Pour ton probleme:

    ouvre ton fichier en mode a
    Pour ajouter un texte à partir d'une certaine place tu fais:
    objet_fichier.write(1.0, 'ton texte') (ou 1.0 est l'endroit à partir duquel tu veux écrire).

  3. #3
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 25
    Par défaut
    hum ... ça marche po ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    >>> f = open("test.txt","a")
    >>> f.write(1.0,"bouh")
    Traceback (most recent call last):
      File "<stdin>", line 1, in ?
    TypeError: function takes exactly 1 argument (2 given)
    c'est bien la fonction write ?
    et pourquoi faut mettre un float ?

  4. #4
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 25
    Par défaut
    En fait il faut que j'utilise le mode "r+", comme ça je peux ecrire où je veux sans qu'il écrase le fichier.

    Pour écrire à un endroit, il faut se déplacer dans le fichier avec seek() et ecrire avec write() (j'ai pas de fonction write() à 2 arguments ...)

    Voilà, merci de m'avoir mis sur la voie.

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

Discussions similaires

  1. probleme d'ecriture dans un fichier texte
    Par azrael88370 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/01/2005, 17h33
  2. Script shell - écriture dans un fichier
    Par Leishmaniose dans le forum Linux
    Réponses: 6
    Dernier message: 13/12/2004, 22h48
  3. Probleme d'ecriture dans un fichier en mode Text
    Par bbozet dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/01/2004, 13h46
  4. [LG]ecriture dans un fichier binaire
    Par jsaviola dans le forum Langage
    Réponses: 3
    Dernier message: 26/12/2003, 17h30
  5. Réponses: 2
    Dernier message: 26/09/2003, 14h51

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