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 :

Carnet d'adresse python


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    étudiant
    Inscrit en
    Octobre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Carnet d'adresse python
    Bonjour,
    Je suis nouveau dans la programmation et sur ce forum. Je travail présentement sur un programme python permettant a l'utilisateur d'entré des noms avec leur téléphone et leur adresse.

    Ce programme m'était demandé dans les exercises d'un cours. Il ne fallait pas utiliser de fonctions tel que def.

    On conviendra que l’utilisateur tape des lignes de la forme:
    +nom/téléphone/adresse : pour l'ajout
    ?nom : pour l'interrogation
    ! : pour quitter le programme

    Il fallait également demander à l'utilisateur s'il voulait importer une liste de nom a partir d'un fichier.

    A la fin, il fallait lui demander s'il veut sauvegarder ses nouvelles entrées. (peu importe que ce soit sous un nouveau nom ou le même)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
     
    #Ce programme permet la creation d'un carnet d'adresse et de le consulter par apres.
                                                                                                    #Y aura-t-il des imports pickle,os,autre
    carnet={}                                                                                   #Creation du dictionnaire
     
     
    while True:                                                                                     #boucle permettant de charger un fichier comme repertoire
        try:
            fichier= input("Avez-vous un agenda à charger? Veuillez entrer le nom du fichier: ")
            agenda=open(fichier.strip(),"r")
        except IOError:
            print("Le fichier" ,fichier, "est introuvable")
            continue
        break                                                                                       # Si c'est la premiere utilisation, il n'y aura pas de fichier "read" (Boucle infini???)
     
     
    while 1:
        donne=input("Que puis-je pour vous?\n").strip()                                             #La donnee rentre par l'utilisateur aura un signe et des sequences
        if donne[0]=='!':                                                                           #Si le signe est !, il y a fermeture de la boucle
            print ('Fermeture du programme')
            break                                                                             
        elif donne[0] == '+':                                                                       #Si le signe est +, 
            donne=donne[1:].split("/")                                                              #On split le restant de la chaîne après le +
            if len(donne) == 3:                                                                     #Si notre chaine comporte 3 elements
                carnet[donne[0].strip()] = ( donne[1].strip(), donne[2].strip())                    #On ajoute la clef et de sa valeur au fichier
                f=open(agenda,'a')
                f.write()
                f.close()           
            else:
                print ("trop ou pas assez d'information")                                           # L'utilisateur n'a pas respecte la structure pour un ajout
        elif donne[0]=='?':
            f=open(agenda, 'r')                                                                     # ou  if carnet.get(donne[1]):  print(carnet[donne[1]])
            if donne[1] in f:                                                                       #formule pour verifier si la demande est deja en memoire
                print(donne[1],"est associe aux renseignements suivants: ",carnet[donne[1]]) 
            else:
                print("Vous n'avez pas encore entree cette personne dans votre carnet")
            f.close()
        else:
            print('Vous avez rentrez une commande invalide')
     
     
     
    while True:   
        save=input("Desirez-vous sauvegarder votre agenda? O pour oui, N pour non: ")
        if save.strip()=='O' or save=='N':
            break                                                                               #on sort de la boucle
    if save.strip() =='O':                                                                      #si Oui, on charge, on ajoute, on consulte ou on sauvegarde un carnet d’adresses
        print("trouve la facon de sauvegarder")                                                                                #ligne de texte pour sauvegarder
    Mes principaux soucis proviennent de l'importation du fichier, de l'inscription des nouvelles données et de ma sauvegarde a la fin.

    J'aime bien me casser la tête, mais je suis un peu perdu là. Je ne veux surtout pas un code tout écrit. Je recherche surtout des pistes de solutions ou des explications

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 046
    Points : 1 376
    Points
    1 376
    Par défaut
    le module pickle devrait faire l'affaire ...

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    étudiant
    Inscrit en
    Octobre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Le module pickle m'a été montré comme une possibilité pouvant servir a emmagasiner et retirer des données de type autre que string (chaine de caractères). Avec les fonction .dump et .load

    Toutes les infos que je veux sauvegarder son sous la forme Str.

    Je vais quand même relire mes notes sur le pickle au cas où j'aurais manqué quelque chose.

    Pickle me servira-t-il a utiliser les données d'un fichier externes et les sauvegarder par après?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 046
    Points : 1 376
    Points
    1 376
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    import pickle
     
    # ici on va sauvegarder le dictionnaire `d` en un fichier nommé 'foo'
    d =  {1:2,3:4}
    with open('foo','wb') as f:
        pickle.dump(d,f)
     
     
    # et la on va charger le fichier 'foo' dans une variable `e`
    with open('foo','rb') as f:
        e = pickle.load(f)
    # avec le print, on voit que `e` est un dictionnaire
    print(e)
     
    >>> {1: 2, 3: 4}

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/02/2015, 20h28
  2. Server 2003 et partage de carnet d'adresse
    Par Yepazix dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 23/10/2005, 22h47
  3. Carnet d'adresses d'Outlook
    Par vciofolo dans le forum Access
    Réponses: 2
    Dernier message: 14/10/2005, 11h34
  4. Récupérer le carnet d'adresses de Outlook
    Par pc75 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 01/02/2005, 12h30

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