Enregistrer des valeur dans un fichier [Résolu]

Messages postés
6
Date d'inscription
vendredi 27 janvier 2012
Statut
Membre
Dernière intervention
9 mai 2012
- - Dernière réponse : lespinx
Messages postés
97
Date d'inscription
lundi 9 octobre 2006
Statut
Membre
Dernière intervention
7 décembre 2018
- 1 mars 2012 à 21:43
Bonjour, pour m'amuser j'ai fais un générateur de mot de passe et au moment d'enregistrer le mot de passe et l'identifiant associé ça coince.
Voilà le code:
import pickle
from random import randint
import os
i = 0
Composition = "1234567890azertyuiopmlkjhgfdsqwxcvbnAZERTYUIOPMLKJHGFDSQWXCVBN"
mot_de_passe = ""
LOGIN = ""

print("Combien de caractères voulez vous que le mot de passe contienne ?")
longueur = input(": ")
longueur = int(longueur)
print("Quel identifiant voulez-vous lui associer ?")
LOGIN = input(": ")
LOGIN = str(LOGIN)

while i != longueur:
    i += 1          
    mot_de_passe += Composition[randint(0,62)]

print("Le mot de passe créé est", mot_de_passe,"associé à l'identifiant", LOGIN," .")

donnees = open('mot_de_passe', 'ab')
donnees.dump(LOGIN)         #Et là ça coince, je pense que ça coincera aussi
donnees.dump(mot_de_passe)  #La.
donnees.close()

os.system("pause")
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
12
3
Merci
Bonjour.
As tu essayé d'utiliser simplement un
donnees.write(LOGIN)
?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 201 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_laurent1024
Messages postés
97
Date d'inscription
lundi 9 octobre 2006
Statut
Membre
Dernière intervention
7 décembre 2018
43
3
Merci
Bonsoir,
Normalement la syntaxe est:
pickle.dump(LOGIN, donnees)         
pickle.dump(mot_de_passe, donnees)

ou
donnees = open('mot_de_passe', 'rb')
LOGIN  = pickle.load(donnees)
mot_de_passe = pickle.load(donnees)
donnees.close()


Les données devront être relues dans l'ordre ou elles ont été écrites.

Cordialement

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 201 internautes nous ont dit merci ce mois-ci

Commenter la réponse de lespinx
Messages postés
6
Date d'inscription
vendredi 27 janvier 2012
Statut
Membre
Dernière intervention
9 mai 2012
0
Merci
Merci mais oui j'ai déjà essayé et ça n'as pas marché mais je crois que j'ai remédié au problème:



import pickle
from random import randint
import os

i = 0
Composition = "1234567890azertyuiopmlkjhgfdsqwxcvbnAZERTYUIOPMLKJHGFDSQWXCVBN"
mot_de_passe = ""
LOGIN = ""

print("Que voulez-vouf faire ? ( 'C' : Crér un mot de passe/ 'A' : Acceder à un mot de passe)")
action = input(": ")
if action 'C' or action 'c':
    print("Combien de caractères voulez vous que le mot de passe contienne ?")
    longueur = input(": ")
    longueur = int(longueur)
    print("Quel identifiant voulez-vous lui assoscier ?")
    LOGIN = input(": ")
    LOGIN = str(LOGIN)

    while i != longueur:
        i += 1
        mot_de_passe += Composition[randint(0,62)]

    print("Le mot de passe créé est {} assoscié à l'identifiant {} .".format(mot_de_passe, LOGIN))

    log_MDP = {
        "Identifiant : " + LOGIN,
        "Mot de passe :" + mot_de_passe,
        }
    with open('donnees.txt', 'ab') as fichier:
        mon_pickler = pickle.Pickler(fichier)
        mon_pickler.dump(log_MDP)
    
elif action 'A' or action 'a':
    print("A quel mot de passe voulez-vous acceder ? (Tapez l'identifiant) ")   # Et là je voudrais pouvoir trouver mon 'log' dans donnees
    log = input(": ")                       # Mais j'ais essayé d'ouvrir le fichier 'donnees' et c'est assez illisible même si on distingue
                                            #L'identifiant et le mot de passe je ne sais pas comment faire pour que python le trouve lui-même   
    with open('donnees.txt', 'rb') as fichier:
        mon_depickler = pickle.Unpickler(fichier)
        log_MDP_recupere = mon_depickler.load()

    print(log_MDP_recupere)

os.system("pause")


Quand j'ouvre mon fichier donnees.txt ça me donne ça:

€cbuiltins
set
q ]q(X Mot de passe :guGdcyks0qX Identifiant : identifiant_testqe…qRq.
Commenter la réponse de fabespa34