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
- 28 févr. 2012 à 17:36 - Dernière réponse :
Messages postés
96
Date d'inscription
lundi 9 octobre 2006
Dernière intervention
24 février 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
29 févr. 2012 à 17:23
3
Merci
Bonjour.
As tu essayé d'utiliser simplement un
donnees.write(LOGIN)
?

Merci cs_laurent1024 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de cs_laurent1024
Meilleure réponse
Messages postés
96
Date d'inscription
lundi 9 octobre 2006
Dernière intervention
24 février 2018
1 mars 2012 à 21: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

Merci lespinx 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes 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
29 févr. 2012 à 19:14
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.