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 :

écrire dans un fichier .txt [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
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 14
    Par défaut écrire dans un fichier .txt
    Bonsoir,

    Voici mon interface :

    Nom : Sauvegarde manuelle.jpg
Affichages : 2104
Taille : 30,1 Ko

    et voici mon codage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            def Valider_Save1(): #Valider les changements
                NameSave1 = Entrée_Nom_Modif_Save1.get()
                Changements_Save1 = open('Sauvegarde1.txt','w')
                Changements_Save1.write(NameSave1 + "\n" + NDSave1 + "\n" + SourceSave1 + "\n" + Desti1Save1 + "\n" + Desti2Save1 + "\n" + Desti3Save1)
                Changements_Save1.close()
                MSave1.destroy()
                Sauvegarde_Auto()
    Quand j'ai "parcouru" tous les chemins, j'aimerais écrire toutes ces valeurs dans un fichier txt, ici dans 'Sauvegarde1.txt'.
    Cependant, j'ai un message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Exception in Tkinter callback
    Traceback (most recent call last):
      File "C:\Users\Castelli\Anaconda3\lib\tkinter\__init__.py", line 1699, in __call__
        return self.func(*args)
      File "C:/Users/Castelli/Desktop/Valerio/PROJET COPY FOLDER/V2.3/CopyFolderV2.3.py", line 794, in Valider_Save1
        Changements_Save1 = open('Sauvegarde1.txt','w')
    PermissionError: [Errno 13] Permission denied: 'Sauvegarde1.txt'
    Veuillez-bien m'aidez s'il vous plait ?

    Merci

  2. #2
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2012
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2012
    Messages : 321
    Par défaut
    Bonjour,
    La réponse à votre question se trouve dans le message d'erreur.
    Le compte avec lequel est exécuté le code n'a pas les droits d'écriture pour le fichier Sauvegarde1.txt

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 14
    Par défaut
    Bonjour,

    Donc quel est la solution à ce problème ?

  4. #4
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    Citation Envoyé par ValerCast Voir le message
    Donc quel est la solution à ce problème ?
    Salut,

    Il est fort probable que durant un debug le fichier 'Sauvegarde1.txt' n'ai pas été fermé. Du coup il n'est plus possible d'écrire dans la fichier.

    Supprimez le fichier et essayé de nouveau.

    De plus préférez la structure (si cela est possible) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    with open('Sauvegarde.txt", "w") as MyBackup :
    Cette structure a le mérite de fermer le fichier sans à avoir à appeler la méthode close().

    contrairement à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    MyBackup = open('Sauvegarde.txt', 'w')
     
    .....
     
    MyBackup.close()
    qui oblige à utiliser la méthode close() et qui peut causer des problèmes lorsque le fichier n'a pas été fermé correctement par exemple.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 14
    Par défaut
    Citation Envoyé par nekcorp Voir le message
    Salut,

    Il est fort probable que durant un debug le fichier 'Sauvegarde1.txt' n'ai pas été fermé. Du coup il n'est plus possible d'écrire dans la fichier.

    Supprimez le fichier et essayé de nouveau.

    De plus préférez la structure (si cela est possible) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    with open('Sauvegarde.txt", "w") as MyBackup :
    Cette structure a le mérite de fermer le fichier sans à avoir à appeler la méthode close().

    contrairement à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    MyBackup = open('Sauvegarde.txt', 'w')
     
    .....
     
    MyBackup.close()
    qui oblige à utiliser la méthode close() et qui peut causer des problèmes lorsque le fichier n'a pas été fermé correctement par exemple.
    J'ai appliqué vos conseils, l'erreur persiste.. (supprimer le fichier et en mettre un nouveau, puis utiliser la commande with...)

  6. #6
    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
    Utilise des chemins absolus, car je doute que la tentative d'enregistrement de ton fichier se fasse là où tu le crois.

    Et si ça passe toujours pas, vérifie toutes les permissions de tes répertoires.

    Et tu peux également vérifier où tu te situes en important os et en utilisant os.getcwd() dans ton script.

  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
    Citation Envoyé par ValerCast Voir le message
    Donc quel est la solution à ce problème ?
    Apprendre comment sont gérés les droits d'accès aux fichiers sur votre environnement système et à utiliser les outils système qui permettent de les visualiser et les modifier. Ce n'est pas de la programmation mais de l'administration système (et d'une prise de connaissance des différents objets qu'il propose: fichiers, process, ....) qui est quelque part préalable à essayer d'automatiser des opérations avec un langage de scripting.

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

  8. #8
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Apprendre comment sont gérés les droits d'accès aux fichiers sur votre environnement système et à utiliser les outils système qui permettent de les visualiser et les modifier. Ce n'est pas de la programmation mais de l'administration système (et d'une prise de connaissance des différents objets qu'il propose: fichiers, process, ....) qui est quelque part préalable à essayer d'automatiser des opérations avec un langage de scripting.

    - W
    Salut wiztricks,

    Je suis d'accord mais à priori dans son cas c'est pas vraiment un problème de droits puisqu'il travail dans un répertoire, qui à mon avis lui permet d'écrire :

    C:/Users/Castelli/Desktop/Valerio/PROJET COPY FOLDER/V2.3/CopyFolderV2.3.py
    Sous linux je lui aurais effectivement demandé de s'assurer qu'il a les droits en écritures, mais sous Windows, sur le bureau, c'est pas forcément le cas.

  9. #9
    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 nekcorp Voir le message
    Je suis d'accord mais à priori dans son cas c'est pas vraiment un problème de droits puisqu'il travail dans un répertoire, qui à mon avis lui permet d'écrire :
    Le répertoire dans lequel est le script et celui dans lequel on écrit n'ont aucune raison d'être identiques.
    Et s'ils étaient identiques, si on a besoin de pouvoir lire et exécuter le script, pour créer un fichier, il faut des droits en écriture.
    Ceci dit, si Windows dit "Permission denied", on commence par vérifier les protections du répertoire dans lequel on essaie d'écrire. Si on ne trouve pas de problème, on sort la tête de son code pour essayer de créer un fichier dans ce répertoire là (avec et sans Python).

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

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

Discussions similaires

  1. Créer et écrire dans un fichier.txt
    Par Furius dans le forum VBScript
    Réponses: 11
    Dernier message: 16/05/2016, 12h27
  2. Ouvrir et écrire dans un fichier .txt en T-SQL
    Par joul's dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 27/10/2008, 21h04
  3. Réponses: 6
    Dernier message: 28/02/2007, 16h18
  4. [VBa-E] Peut-on écrire dans un fichier txt?
    Par gootsu dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/07/2006, 12h34
  5. Réponses: 17
    Dernier message: 05/07/2006, 13h26

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