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 :

le vrai bleu !enregistrer fichier !


Sujet :

Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 10
    Points
    10
    Par défaut le vrai bleu !enregistrer fichier !
    je suis en train d'apprendre python avec le livre de V. Le Goff. Suis chapitre 14 (les fichiers). Je n'arrive pas à créer un fichier, l'enregistrer etc..
    import os
    os.chdir ("C:/ tests ")
    from tkinter import *
    def efface():
    varP.set('')
    varN.set('')
    varT.set('')
    def sauve(fichier):
    f = open(fichier,'a')
    etc..suis dans IDLE 3.5 (32 bits) me dit qu'il ne trouve pas le fichier ...(j'ai créer le répertoire "tests" à la racine C:/)
    help

  2. #2
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Citation Envoyé par ptiloup52 Voir le message
    je suis en train d'apprendre python avec le livre de V. Le Goff. Suis chapitre 14 (les fichiers). Je n'arrive pas à créer un fichier, l'enregistrer etc..
    import os
    os.chdir ("C:/ tests ")
    from tkinter import *
    def efface():
    varP.set('')
    varN.set('')
    varT.set('')
    def sauve(fichier):
    f = open(fichier,'a')
    etc..suis dans IDLE 3.5 (32 bits) me dit qu'il ne trouve pas le fichier ...(j'ai créer le répertoire "tests" à la racine C:/)
    help
    Bonjour,
    En premier, il serait bon d'utiliser les balises "#" afin que le code soit lisible. Merci d'avance.
    Ensuite, le nom du fichier doit être une chaîne de caractères.
    Que vaut la variable -fichier- dans le bout de code?

    Clodion

    PS: coller le code en entier serait un plus afin de comprendre où se situe le problème.
    PS2: afficher l'erreur exacte serait aussi très utile.

    PS3: J'ai comme un doute: L'option "a" ne peut être utilisée que sur un fichier existant (sinon, c'est l'option "w", cf doc)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 10
    Points
    10
    Par défaut enregistrer fichier
    merci pour ta réponse Clodion. Voilà le code entier
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    #import os
    os.chdir ("C:/ tests ")
    from tkinter import *
    def efface():
        varP.set('')
        varN.set('')
        varT.set('')
    def sauve(fichier):
        f = open(fichier,'a')
        prenom = entr1.get()
        f.write(prenom + '\n')
        nom = entr2.get()
        f.write(nom + '\n')
        telephone = entr3.get()
        f.write(telephone + '\n')
        f.close()
        efface()
    def transfert():
        f = open(fichier,'r')
        j = 1
        while j==1:
            t = f.readline()
            if t=='':
                f.close()
                j=0
            else:
                liste.append(t)
                t = f.readline()
                liste.append(t)
                t = f.readline()
                liste.append(t)
    def affiche():
        global i
        if i == len(liste):
            varP.set('Fin')
            varN.set('Fin')
            varT.set('FIn')
            i = 0
            transfert()
        else:
            varP.set(liste[i])
            varN.set(liste[i+1])
            varT.set(liste[i+2])
            i = i + 3
     
    #---------------- Programme principal ------------------
    fen1 = Tk()
    fen1.title('Repertoire téléphonique')
     
    #Execution du transfert
    liste = []
    i = 0
    fichier = 'fichier'
    #Création et mise en place des labels
    Label(fen1, text='Prenom    : ', ).grid(row=1,column=1, sticky=W)
    Label(fen1, text='Nom       : ').grid(row=2,column=1, sticky=W)
    Label(fen1, text='Téléphone,: ').grid(row=3,column=1, sticky=W)
    #Création des Entry
    varP = StringVar()
    entr1 = Entry(fen1, textvariable=varP)
    varP.set('')
    varN = StringVar()
    entr2 = Entry(fen1, textvariable=varN)
    varN.set('')
    varT = StringVar()
    entr3 = Entry(fen1, textvariable=varT)
    varT.set('')
     
     
    #Mise en place des Entry
    entr1.grid(row=1,column=2)
    entr2.grid(row=2,column=2)
    entr3.grid(row=3,column=2)
    #Création et mise en place des Boutons
    Button(fen1, text=' Enregistrer  ', bg ="yellow",command=sauve).grid(row=4,column=0)
    Button(fen1, text=' Liste  ', bg ="yellow",command=affiche).grid(row=4,column=1)
    Button(fen1, text='Actualiser', bg ="red",command=transfert).grid(row=4,column=2)
    Button(fen1, text=' Effacer ', bg= "yellow",command=efface).grid(row=4,column=3)
    Button(fen1, text=' Fermer ',bg = "yellow", command=fen1.quit).grid(row=4,column=4)
    #Démarrage de la fenêtre
    fen1.mainloop()
    fen1.destroy()
    Et voilà ce que me dit l'interpreteur,
    Traceback (most recent call last):
    File "C:\Users\ptiloup\Desktop\repertoire.py", line 2, in <module>
    os.chdir ("C:/ tests ")
    FileNotFoundError: [WinError 2] Le fichier spécifié est introuvable: 'C:/ tests '
    Merci pour ton aide.

  4. #4
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 824
    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 : 3 824
    Points : 7 120
    Points
    7 120
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    os.chdir ("C:/ tests ")
    En lisant l'erreur et sans connaître l'environnement Windows

    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    suis, sous window 10.
    voilà toujours la même erreur.
    Traceback (most recent call last):
    File "C:\Users\ptiloup\Desktop\repertoire.py", line 2, in <module>
    os.chdir (r"C:/ tests python ")
    FileNotFoundError: [WinError 2] Le fichier spécifié est introuvable: 'C:/ tests python '

  6. #6
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Citation Envoyé par ptiloup52 Voir le message
    merci pour ta réponse Clodion. Voilà le code entier
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    #import os
    os.chdir ("C:/ tests ")
    from tkinter import *
    def efface():
        varP.set('')
        varN.set('')
        varT.set('')
    def sauve(fichier):
        f = open(fichier,'a')
        prenom = entr1.get()
        f.write(prenom + '\n')
        nom = entr2.get()
        f.write(nom + '\n')
        telephone = entr3.get()
        f.write(telephone + '\n')
        f.close()
        efface()
    def transfert():
        f = open(fichier,'r')
        j = 1
        while j==1:
            t = f.readline()
            if t=='':
                f.close()
                j=0
            else:
                liste.append(t)
                t = f.readline()
                liste.append(t)
                t = f.readline()
                liste.append(t)
    def affiche():
        global i
        if i == len(liste):
            varP.set('Fin')
            varN.set('Fin')
            varT.set('FIn')
            i = 0
            transfert()
        else:
            varP.set(liste[i])
            varN.set(liste[i+1])
            varT.set(liste[i+2])
            i = i + 3
     
    #---------------- Programme principal ------------------
    fen1 = Tk()
    fen1.title('Repertoire téléphonique')
     
    #Execution du transfert
    liste = []
    i = 0
    fichier = 'fichier'
    #Création et mise en place des labels
    Label(fen1, text='Prenom    : ', ).grid(row=1,column=1, sticky=W)
    Label(fen1, text='Nom       : ').grid(row=2,column=1, sticky=W)
    Label(fen1, text='Téléphone,: ').grid(row=3,column=1, sticky=W)
    #Création des Entry
    varP = StringVar()
    entr1 = Entry(fen1, textvariable=varP)
    varP.set('')
    varN = StringVar()
    entr2 = Entry(fen1, textvariable=varN)
    varN.set('')
    varT = StringVar()
    entr3 = Entry(fen1, textvariable=varT)
    varT.set('')
     
     
    #Mise en place des Entry
    entr1.grid(row=1,column=2)
    entr2.grid(row=2,column=2)
    entr3.grid(row=3,column=2)
    #Création et mise en place des Boutons
    Button(fen1, text=' Enregistrer  ', bg ="yellow",command=sauve).grid(row=4,column=0)
    Button(fen1, text=' Liste  ', bg ="yellow",command=affiche).grid(row=4,column=1)
    Button(fen1, text='Actualiser', bg ="red",command=transfert).grid(row=4,column=2)
    Button(fen1, text=' Effacer ', bg= "yellow",command=efface).grid(row=4,column=3)
    Button(fen1, text=' Fermer ',bg = "yellow", command=fen1.quit).grid(row=4,column=4)
    #Démarrage de la fenêtre
    fen1.mainloop()
    fen1.destroy()
    Et voilà ce que me dit l'interpreteur,
    Traceback (most recent call last):
    File "C:\Users\ptiloup\Desktop\repertoire.py", line 2, in <module>
    os.chdir ("C:/ tests ")
    FileNotFoundError: [WinError 2] Le fichier spécifié est introuvable: 'C:/ tests '
    Merci pour ton aide.
    Bonjour,
    Il y a plusieurs erreurs.
    En premier le répertoire est bien "c:/ tests "? Avec un espace avant et un espace après?
    La fonction "sauve" demande un paramètre qui n'est pas transmis (et qui ne peut l'être directement car elle est appelée d'une commande de bouton)!!
    Il faut soit utiliser le mot clef "global" soit utiliser une fonction lambda dans la commande du bouton.
    D'autre part, je suis sous Linux, je ne sais pas comment on indique un répertoire exactement, mais "/" ne me semble pas cohérent ("\" ou "\\", non?).

    Toutes ces choses sont à tester avec la console (le shell) python (essayer de changer de répertoire à la main pour vérifier qu'il n'y a pas d'erreur…)

    Clodion

  7. #7
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 824
    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 : 3 824
    Points : 7 120
    Points
    7 120
    Par défaut
    Citation Envoyé par ptiloup52 Voir le message
    suis, sous window 10.
    voilà toujours la même erreur.
    Traceback (most recent call last):
    File "C:\Users\ptiloup\Desktop\repertoire.py", line 2, in <module>
    os.chdir (r"C:/ tests python ")
    FileNotFoundError: [WinError 2] Le fichier spécifié est introuvable: 'C:/ tests python '
    Euh... tu as l'impression d'avoir recopier mon code ?
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    c'est un code recopié sur internet. C'est peut-être le tien je n'ai pas noté l'auteur et je ne prétends pas en être l'auteur, j'en suis bien incapable. Je l'ai fait pour apprendre à manipuler les fichiers et en particulier enregistrer sur le disque dur et je n'y parviens pas. Que manque t-il à ce code afin d'enregistrer ? Merci.

  9. #9
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Citation Envoyé par ptiloup52 Voir le message
    c'est un code recopié sur internet. C'est peut-être le tien je n'ai pas noté l'auteur et je ne prétends pas en être l'auteur, j'en suis bien incapable. Je l'ai fait pour apprendre à manipuler les fichiers et en particulier enregistrer sur le disque dur et je n'y parviens pas. Que manque t-il à ce code afin d'enregistrer ? Merci.
    Enlève les espaces, peut-être ?
    Pas d'aide par mp.

Discussions similaires

  1. Enregistrer fichier xls - pilotage depuis access
    Par Celia1303 dans le forum Access
    Réponses: 5
    Dernier message: 15/11/2005, 14h15
  2. Enregistrer fichier .xls sans macro ni code vb
    Par alexxx69 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 08/11/2005, 17h48
  3. Comment empêcher users d'enregistrer fichiers lourds sur bureau
    Par kikica dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 14/10/2005, 15h24
  4. Réponses: 9
    Dernier message: 22/09/2005, 16h34
  5. Enregistrement Fichier
    Par TheGoldViking dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/04/2005, 17h32

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