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 :

Créer une liste à a partir d'un document texte


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Créer une liste à a partir d'un document texte
    Bonjour,

    Je dois faire un script python pour faire un dictionnaire à partir d'un fichier texte. Pour cela je pensais faire une liste recensant tous les mots de mon fichier (dans l'ordre) puis faire un dictionnaire à partir de cette liste en entrant comme clé la position du mot dans la liste.
    je n'arrive pas à le terminer le programme en transformant la liste en dictionnaire:

    Si quelqu'un pouvait m'aider ce serait super !
    Voici ce que j'ai fait pour l'instant :

    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
    def fonction():
       fichier=open("/Users/Kirikousurlesplaines/Library/Mail/V2/IMAP-33achachenina@imap.gmail.com/Sent Messages.mbox/369C528B-D0DF-41DA-97D1-58AE6BCB1F5E/Data/9/Attachments/9772/1/ODS6 - copie1.txt","r")
       contenu=fichier.read()
       fichier.close()
       L=[]
       i=0
       while i<len(contenu):
          mot=""
          k=i
          while k<len(contenu):
             k=k+1
             mot=mot+contenu[k]
             L=L+[mot]
             i=k+1
             return(L)
    def fonction2():
       L=fonction()
       dict={}
       i=0
       for i in range (0,len(L)):
          dict[i]=L[i]
       return(dict)

    Cordialement
    Kirikou

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Tout d'abord tu dois déclarer le mode d'ouverture du fichier (lecture, écriture, ajout, binaire...)

    Dans ton cas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    def fonction():
       fichier=open("/chemin/nom.txt", "r")
    Si Python te retourne une erreur sur le nom du fichier, c'est que celui-ci n'est pas dans le répertoire courant. C'est-à-dire celui où se trouve le script Python. Utilise le chemin complet du fichier pour l'ouvrir.

    Ensuite, je ne comprend pas ta méthode pour lister les mots d'un texte, Python peut te le faire avec split()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Python 3.2.3 (default, Feb 27 2014, 21:33:50) 
    [GCC 4.6.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> l = "Si Python te retourne une erreur sur le nom du fichier, c'est que celui-ci n'est pas dans le répertoire courant. C'est-à-dire celui où se trouve le script Python.\n  Utilise le chemin complet du fichier pour l'ouvrir."
    >>> l = l.replace("\n", " ")
    >>> mots = l.split()
    >>> mots
    ['Si', 'Python', 'te', 'retourne', 'une', 'erreur', 'sur', 'le', 'nom', 'du', 'fichier,', "c'est", 'que', 'celui-ci', "n'est", 'pas', 'dans', 'le', 'répertoire', 'courant.', "C'est-à-dire", 'celui', 'où', 'se', 'trouve', 'le', 'script', 'Python.', 'Utilise', 'le', 'chemin', 'complet', 'du', 'fichier', 'pour', "l'ouvrir."]
    Est-cela que tu veux faire ?

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    J'avoue ne pas comprendre non plus d'ou sort cette méthode mais c'etait un programme de mon cours directement
    je vais essayer split

    merci bcp!!

    Pour le reste mon programme me donne toutes les listes selon les valeurs de i mais si je change la position de return ou print je n'ai plus de résultat :/ pareil pour le dictionnaire

    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
    fichier=open("/Users/Kirikousurlesplaines/Library/Mail/V2/IMAP-33achachenina@imap.gmail.com/Sent Messages.mbox/369C528B-D0DF-41DA-97D1-58AE6BCB1F5E/Data/9/Attachments/9772/1/ODS6 - copie1.txt","r")
    contenu=fichier.read()
    fichier.close()
    L=[]
    i=0
    while i<len(contenu):
       mot=""
       k=i
       while k<len(contenu):
          k=k+1
          mot=mot+contenu[k]
          L=L+[mot]
          i=k+1
          dict={}
          for i in range(0,len(L)):
             dict[i]=L[i]
             print(dict)
    print(dict)
    auriez vous des idées ?

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Entre ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    fichier=open("copie1.txt","r")
     
    # et ça:
    fichier=open("/Users/Kirikousurlesplaines/Library/Mail/V2/IMAP-33achachenina@imap.gmail.com/Sent Messages.mbox/369C528B-D0DF-41DA-97D1-58AE6BCB1F5E/Data/9/Attachments/9772/1/ODS6 - copie1.txt","r")
    Il y a une différence.

    J'ai rêvé ou bien ton code, dans ton premier post, était entre balises ?

    Je vois pas trop l'utilité du dictionnaire, mais, de nouveau, laisse faire Python:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    >>> l = ['Si', 'Python', 'te', 'retourne', 'une', 'erreur', 'sur', 'le', 'nom', 'du', 'fichier,', "c'est", 'que', 'celui-ci', "n'est", 'pas', 'dans', 'le', 'répertoire', 'courant.', "C'est-à-dire", 'celui', 'où', 'se', 'trouve', 'le', 'script', 'Python.', 'Utilise', 'le', 'chemin', 'complet', 'du', 'fichier', 'pour', "l'ouvrir."]
    >>> d = {k: v for k, v in enumerate(l)}
    >>> d
    {0: 'Si', 1: 'Python', 2: 'te', 3: 'retourne', 4: 'une', 5: 'erreur', 6: 'sur', 7: 'le', 8: 'nom', 9: 'du', 10: 'fichier,', 11: "c'est", 12: 'que', 13: 'celui-ci', 14: "n'est", 15: 'pas', 16: 'dans', 17: 'le', 18: 'répertoire', 19: 'courant.', 20: "C'est-à-dire", 21: 'celui', 22: 'où', 23: 'se', 24: 'trouve', 25: 'le', 26: 'script', 27: 'Python.', 28: 'Utilise', 29: 'le', 30: 'chemin', 31: 'complet', 32: 'du', 33: 'fichier', 34: 'pour', 35: "l'ouvrir."}

Discussions similaires

  1. [Débutant] Créer une liste a partir d'un fichier XML
    Par lolo81 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 14/12/2013, 14h50
  2. Créer une liste MP3 à partir d'un bouton.
    Par Trnita dans le forum VB.NET
    Réponses: 6
    Dernier message: 28/01/2013, 20h18
  3. Créer une liste déroulante à partir d'une base de données
    Par shaiyajoueur dans le forum Android
    Réponses: 2
    Dernier message: 13/12/2012, 13h33
  4. créer une liste a partir d'une autre feuille ?
    Par deuval dans le forum Excel
    Réponses: 2
    Dernier message: 23/07/2009, 11h12
  5. Réponses: 3
    Dernier message: 22/03/2009, 17h47

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