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 :

Débutant: problème écriture puis lecture [Python 2.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mars 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Mars 2019
    Messages : 2
    Par défaut Débutant: problème écriture puis lecture
    Bonjour à tous, je me permets une petite questino de débutant car je n'ai pas trouvé de solution sur le forum. J'ai lu quelques livres et articles et je n'arrive à trouver ce que je fais faux.
    Je suis sur OSX avec Python 2.7.15 et je souhaite insérer dans un fichier une valeur demandée en input et ensuite affichier le contenu du fichier.

    L'insertion dans le fichier fonctionne, mais ensuite impossible d'afficher de lire le contenu du fichier dans le même script.

    J'ai testé ma syntaxe pour la lecture du fichier et elle fonctionne, je ne comprends pas ce que je fais faux.

    Voilà le 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
     
    #!/usr/bin/python
     
    #Demande un string à l'utilisateur
    montext = raw_input("Entrez votre texte : ")
     
    #Ouvre le fichier 
    myfile = open('myfile.txt', 'w+')
     
    #Ecrit le contenu de l'input dans le fichier
    myfile.write(montext)
     
    readfile = myfile.readlines ()
    print readfile
    myfile.close
    A la fin du code, le fichier est présent sur le disque et le contenu de la string rentrée en input est présente.

    La commande retourne une sorte de carré à l'écran, sans le contenu.

    J'ai testé en forçant l'écriture sur le disque avec flush, sans succès.

    Le seul moyen pour que ça fonctionne et de fermer le fichier après l'écriture et ensuite de l'ouvrir à nouveau en lecture, mais je souhaite pouvoir lire à la volée sans avoir à fermer le fichier après chaque écriture.

    Avez-vous une idée ?

    Merci d'avance pour votre aide.

  2. #2
    Membre expérimenté Avatar de zancrows
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 159
    Par défaut
    bonjour,

    si tu veux lire il faut que tu replaces 'le curseur' au début du fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #Ouvre le fichier 
    myfile = open('myfile.txt', 'r+')
     
    #Ecrit le contenu de l'input dans le fichier
    myfile.write(montext)
     
    # replace le curseur au début
    myfile.seek(0)
     
    readfile = myfile.read()
    print readfile
    myfile.close()

  3. #3
    Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mars 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Mars 2019
    Messages : 2
    Par défaut
    Merci pour ta réponse. Ca fonctionne parfaitement.

    Je n'ai pas encore abordé cette notion, j'ai de quoi lire et m'occuper.

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 064
    Par défaut
    Citation Envoyé par franckg21 Voir le message
    La commande

    retourne une sorte de carré à l'écran, sans le contenu.
    C'est une liste vide, un des objets les plus importants du langage, mieux vaut vous renseigner dessus pour comprendre ce que fait readlines.

    -----------------------------

    Un petit conseil, si vous souhaitez éviter d'oublier la méthode close, et que cela se fasse automatiquement, on peut passer par un context manager.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    with open('...', 'r') as f:
        print(f.readlines())

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

Discussions similaires

  1. [Débutant] Pb entre écriture puis lecture d'un fichier txt
    Par noel19 dans le forum MATLAB
    Réponses: 3
    Dernier message: 15/02/2013, 14h29
  2. [POI] Problème écriture/lecture dans un fichier Excel
    Par steuve dans le forum Documents
    Réponses: 6
    Dernier message: 02/07/2007, 15h47
  3. Réponses: 7
    Dernier message: 13/03/2007, 11h20
  4. Réponses: 3
    Dernier message: 18/08/2005, 11h57
  5. [débutant] problème de lecture d'image
    Par shura dans le forum OpenGL
    Réponses: 16
    Dernier message: 03/07/2004, 18h05

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