Enregistrer des valeur dans un fichier [Résolu]

Messages postés
6
Date d'inscription
vendredi 27 janvier 2012
Dernière intervention
9 mai 2012
- - Dernière réponse : lespinx
Messages postés
97
Date d'inscription
lundi 9 octobre 2006
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 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Dernière intervention
30 août 2012
18
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 117 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
Dernière intervention
7 décembre 2018
50
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 117 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
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

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.