Partage
  • Partager sur Facebook
  • Partager sur Twitter

Utiltisation d'un fichier

Projet pendu

Sujet résolu
Anonyme
    16 février 2011 à 11:32:09

    Bonjour,

    Je suis dans un projet qui a pour but de réaliser un pendu en python.
    Je l'ai pratiquement finit à un détail près : je veux que mon programme choisisse un mot aléatoirement dans un fichier qui contient une liste de mots.
    Je sais comment on accède à un fichier mais ce qu'il me faut c'est une commande qui lise juste la ligne définie aléatoirement, et qui contient un mot et rien d'autre.
    Je ne sais pas comment écrire ça.

    J'espère que j'ai été le plus clair possible :D , sinon demander moi.

    [MAJ] Lien code source : Code
    Pour le moment le mot est entré manuellement, ici le mot est : "pokemon" :D

    Merci de m'aider ;)

    Armanol
    • Partager sur Facebook
    • Partager sur Twitter
      16 février 2011 à 12:14:42

      Bah tu crée une liste et tu fais un choice(liste).
      Tout con.
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        16 février 2011 à 15:31:37

        Il n'y a vraiment pas une autre solution ??? Car tout mettre dans le même fichier c'est galere si je me plante. Alors qu'une liste dans un fichier à part est plus pratique et modifiable à souhait surtout quand le programme est compilé.

        • Partager sur Facebook
        • Partager sur Twitter
          16 février 2011 à 16:01:54

          Citation : foo.txt

          Foo
          Bar


          with open("foo.txt",'r') as fichierMots:
              listeMots = fichierMots.read().split('\n'))
          print(listeMots)
          

          Ce qui donne :
          ['Foo','Bar']
          


          Par ailleur, les fichiers .py ne sont pas compilés mais interprétés (même si du bytecode est généré pour facilité l'exécution du programme par la suite).
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            16 février 2011 à 18:03:09

            Merci beaucoup j essaye ça.
            Est ce que tu peux juste m expliquer le "with"

            Merci beaucoup

            Armanol
            • Partager sur Facebook
            • Partager sur Twitter
              16 février 2011 à 18:15:56

              with open("foo.txt",'r') as fichier:
                 pass
              


              Ce code est l'équivalent de celui-ci :

              fichier = open('foo.txt', 'r')
              try:
                  pass
              except Exception:
                  # Gestion d'une éventuelle exception
              finally:
                  f.close()
              


              Pour en savoir plus : Pratiques avancées et méconnues de Python
              • Partager sur Facebook
              • Partager sur Twitter
                16 février 2011 à 18:55:51

                Autrement si le but est juste de prendre une ligne au hasard dans le fichier, tu peux utiliser la fonction getline du module linecache,
                combiné à la fonction randint du module random comme ceci

                from linecache import getline
                from random import randint
                
                ligne = getline('fichier.txt', randint(1,nb_lignes)) # où nb_lignes vaut le nombre de lignes dans ton fichier
                

                Si tu veux plus d'info voici les liens pour la doc python 2.6 getline, randint ;)
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  18 février 2011 à 21:46:50

                  Merci beaucoup pour votre aide, j'ai réussi a faire ce que je voulais.

                  Armanol
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    18 février 2011 à 22:09:29

                    Hmmm...

                    Tu as plusieurs solutions données à ton problème et il est résolu. Cependant tu ne donnes pas la solution que tu préconises.

                    Déjà c'est un peu frustrant pour les zéros qui t'ont aidés de ne pas le savoir, mais en plus lors d'une recherche, on ne sait pas quelle est la bonne solution à ton problème.

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      19 février 2011 à 0:11:16

                      La solution que je préconise est celle de yohan88 :

                      with open("foo.txt",'r') as fichierMots:
                          listeMots = fichierMots.read().split('\n'))
                      print(listeMots)
                      


                      C est elle que j ai utilise pour mon algorithme.

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        19 février 2011 à 0:52:13

                        file.read.split('\n') == file.readlines() :-°
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Utiltisation d'un fichier

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown