Enregistrer des valeur dans un fichier [Résolu]

fabespa34 6 Messages postés vendredi 27 janvier 2012Date d'inscription 9 mai 2012 Dernière intervention - 28 févr. 2012 à 17:36 - Dernière réponse : lespinx 96 Messages postés lundi 9 octobre 2006Date d'inscription 24 février 2018 Dernière intervention
- 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

Répondre au sujet
cs_laurent1024 987 Messages postés mardi 31 mai 2005Date d'inscription 30 août 2012 Dernière intervention - 29 févr. 2012 à 17:23
+3
Utile
Bonjour.
As tu essayé d'utiliser simplement un
donnees.write(LOGIN)
?
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_laurent1024
lespinx 96 Messages postés lundi 9 octobre 2006Date d'inscription 24 février 2018 Dernière intervention - 1 mars 2012 à 21:43
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de lespinx
fabespa34 6 Messages postés vendredi 27 janvier 2012Date d'inscription 9 mai 2012 Dernière intervention - 29 févr. 2012 à 19:14
0
Utile
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.