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 :

Aide projet isn


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2015
    Messages : 11
    Par défaut Aide projet isn
    J'ai un gros problème pour mon projet isn, j'ai un fichier texte qui comporte des contacts a la suite des autre sous la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    nom
    telephone
    date de naissance
    mail
    et je dois faire un programme qui est capable d'ajouter par exemple une 2eme adresse mail a un contact mais je n'arrive pas a le faire ; voila mon code:
    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
    #!/usr/bin/python3
    #coding : utf-8
     
    import time
     
     
    def rechercheTel(fpath,s):
      tel = ""
      mail = ""
      anniv = ""
      f = open(fpath, 'r')
      i = 0
      while 1:
        line = f.readline()
        line = line.strip()
        i += 1
        if line:
          print("%d lignes lues"%i,end='\r')
          time.sleep(0.1)
          #print(len(line))
        else: 
            break
        if line==s:
           o = input("telephone")
           tel = f.readline()
           doc = list()
           doc.append(tel)
           doc.append(o)
           print(doc)
           break
      f.close()
      if len(tel)!=0:
        return(tel)
      else:
        return("Inconnu")
     
    def ecrireTel(fpath,s):
      f = open(repertoire.txt, 'a')
      f.write(o)
      f.close()
     
     
    s = input("Nom recherché?") 
    print("Résultat de la recherche :"+rechercheTel('repertoire.txt',s))

  2. #2
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    Bonjour,

    J'ai du mal à voir le rapport du code que tu postes (qui visiblement concerne la recherche d'un contact) par rapport à la problématique que tu as

    Ensuite je te recommanderais (c'est comme ça qu'on fait en pratique généralement) de d'abord lire ton fichier entièrement et construire une représentation de ta liste de contacts en mémoire que tu pourras ensuite manipuler aisément, et de manière similaire, une autre fonction qui écrit ta "représentation" en mémoire dans un fichier .

    Concernant les mails, tu peux envisager de les écrire sur une même lignes séparés par un espace ou un autre caractère de ton choix (de préférence qui ne peut pas être utilisé dans une adresse mail, et l'espace me semble un bon choix pour ça ).

    Enfin, une manière plus "pythonnesque" de lire un fichier ligne par ligne est de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    file = open ("monfichier.txt", "r")
    for line in file:
        # traiter la ligne qu'on vient de lire

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2015
    Messages : 11
    Par défaut
    J'ai modifié mon code mais je n'arrive toujours pas a ajouter des information au contact rechercher:
    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
    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
     
    # Données qui pourraient être lue d'un fichier
    data = open('repertoire.txt', 'r')
     
    NOM, TEL, EMAIL, DATE = (0, 1, 2, 3) # indices constants
     
    data.splitlines()
    carnet = [] # Notre carnet de contact qui est une liste de listes
    for entry in data:
        carnet.append(entry.split(';'))
     
     
    def recherche_telephone(carnet, num_tel):
        """ Retourne le contact avec le nom fourni """
        for entry in carnet:
            if entry[NOM] == nom_tel:
                return entry
     
        return None # C'est la valeur retournée par défaut par Python si on ne fait
                    # pas de return.
     
    def affiche_contact(contact):
        print("""\
    Nom: {0}
    Numéro de téléphone: {1}
    Adresse email: {2}
    Date de naissance: {3}""".format(contact[NOM], contact[TEL], contact[EMAIL], contact[DATE]))
     
     
    nom_tel = input("Entrez un nom: ")
     
    contact_trouve = recherche_telephone(carnet, nom_tel)
    if contact_trouve is None:
        print("Aucun contact trouvé avec le nom", nom_tel)
    else:
        print("Ce nom a pour information:")
        affiche_contact(contact_trouve)
     
    data.close()
    et des que j'essaye ce code il y a une erreur qui vient:
    Traceback (most recent call last):
    File "C:\Users\SPARTAN\Documents\Python\contact.py", line 9, in <module>
    data.splitlines()
    AttributeError: '_io.TextIOWrapper' object has no attribute 'splitlines'

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Essayes de mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data.read().splitlines()

  5. #5
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Le mode "r" ne permettra pas d'ajouter des choses dans le fichier.

  6. #6
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2015
    Messages : 11
    Par défaut
    Merci fred1599 et marco056 pour votre aide et est ce que je peut mettre le mode 'r' et le mode 'a' en meme temps?

Discussions similaires

  1. [Python 3.X] Aide Scrabble - Projet ISN Terminale S
    Par Batmai dans le forum Général Python
    Réponses: 10
    Dernier message: 18/05/2015, 10h51
  2. Aide au choix d'un projet ISN
    Par raphaelbellahsen dans le forum Programmation multimédia/Jeux
    Réponses: 15
    Dernier message: 09/09/2014, 07h33
  3. Aide projet ISN
    Par DiiKenZ dans le forum Général Python
    Réponses: 0
    Dernier message: 29/05/2014, 09h15
  4. Besoin d'aide pour projet ISN: jeu de plateau
    Par Stilishh dans le forum Programmation multimédia/Jeux
    Réponses: 4
    Dernier message: 17/05/2014, 07h39
  5. Aide python mini projet ISN
    Par Trirouson dans le forum Général Python
    Réponses: 22
    Dernier message: 19/12/2013, 20h01

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