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

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2015
    Messages : 11
    Points : 3
    Points
    3
    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 émérite
    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
    Points : 2 793
    Points
    2 793
    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
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

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

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2015
    Messages : 11
    Points : 3
    Points
    3
    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 éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 812
    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 : 3 812
    Points : 7 097
    Points
    7 097
    Par défaut
    Essayes de mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data.read().splitlines()
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

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

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Le mode "r" ne permettra pas d'ajouter des choses dans le fichier.
    Pas d'aide par mp.

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

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2015
    Messages : 11
    Points : 3
    Points
    3
    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?

  7. #7
    Membre régulier
    Homme Profil pro
    employé
    Inscrit en
    Mars 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Mars 2015
    Messages : 75
    Points : 103
    Points
    103
    Par défaut
    Bonjour,

    Je connais la méthode r+ qui a pour but de lire/sauvegarder et de réécrire le fichier. Elle symbolise (r et w) donc en cherchant un peu sur internet, tu devrais avoir la chance de trouver ton bonheur

  8. #8
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 812
    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 : 3 812
    Points : 7 097
    Points
    7 097
    Par défaut
    C'est le mode a+
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2015
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    merci mais je ne trouve pas comment fait-t-on pour supprimer un ligne en particulier d'un fichier txt. Est ce que on peut le faire?

  10. #10
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 812
    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 : 3 812
    Points : 7 097
    Points
    7 097
    Par défaut
    Bien sûr que l'on peut, il faut enregistrer tout le texte dans une liste, supprimer la ligne concernée et réécrire toute la liste dans le fichier...
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

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

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2015
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    des que je suis en mode a+ ou w+ le programme ne trouve aucune info alos que quand je suis en mode r mon code trouve toute les info. je ne sais pas d'ou vien le probleme

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

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Citation Envoyé par spartan94 Voir le message
    des que je suis en mode a+ ou w+ le programme ne trouve aucune info alos que quand je suis en mode r mon code trouve toute les info. je ne sais pas d'ou vien le probleme
    Avez-vous lu cela ?

    http://python.developpez.com/cours/a.../?page=page_11
    Pas d'aide par mp.

  13. #13
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2015
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    je viens de le lire 3 fois et je ne trouve pas la reponse a mon probleme

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

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Citation Envoyé par spartan94 Voir le message
    je viens de le lire 3 fois et je ne trouve pas la reponse a mon probleme

    J'ai perdu ma boule de cristal : quels sont vos fichiers exactement (py et txt) ?
    Pas d'aide par mp.

  15. #15
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2015
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    oui py et txt

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

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Citation Envoyé par spartan94 Voir le message
    oui py et txt
    Oui, mais pouvez-vous les fournir ainsi que les éventuels messages d'erreur ?
    Pas d'aide par mp.

  17. #17
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2015
    Messages : 11
    Points : 3
    Points
    3
    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
    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
     
    # Données qui pourraient être lue d'un fichier
    f = open('contact.txt', 'w+')
     
    NOM, TEL, EMAIL, DATE = (0, 1, 2, 3) # indices constants
     
    liste = f.read().splitlines()
    carnet = [] # Notre carnet de contact qui est une liste de listes
    for entry in liste:
        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: ")
    pseudo = input("pseudo")
     
    def addColumn(lines, nameColumn, newColumn):
        index = lines[0].index(nameColumn)
        lines[0].insert(index, newColumn)
        for line in lines[1:]:
            line.insert(index, str(pseudo))
     
     
    test = [
            ['Nom', 'Tel', 'email', 'date'],
            ['Bob', '0606060607', 'bob@contact.fr', '02/05/1997'],
           ]
     
    addColumn(test, 'email', 'pseudo')
    #print(test)
     
     
     
     
     
     
     
    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)
     
     
     
     
     
     
    lines = []
    for line in f:
        LISTES = line.split(';')
        lines.append(LISTES)
     
    addColumn(lines, 'email', 'pseudo')
     
    for line in lines:
        phrase = ';'.join(line)
        f.write(phrase + '\n')
     
    f.close()

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

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Sauf erreur de ma part, je ne vois aucune instruction qui écrit dans le fichier.
    Pas d'aide par mp.

  19. #19
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2015
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Sauf erreur de ma part, je ne vois aucune instruction qui écrit dans le fichier.
    Si a la 75eme ligne du code :

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

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Citation Envoyé par spartan94 Voir le message
    Si a la 75eme ligne du code :

    Ah oui !
    Je crois que la syntaxe ne va pas coller.

    Je suis sur un projet en ce moment et je n'ai pas trop le temps d’approfondir.
    Je crois que vous devriez tout d'abord essayer d'écrire sans fonctions, un fichier texte.
    La fonction addColumn me paraît mal faite.
    Pas d'aide par mp.

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