Partage
  • Partager sur Facebook
  • Partager sur Twitter

Help ! Listdir ne fonctionne pas !

Sujet résolu
    7 juin 2011 à 23:39:20

    Bonjour à tous !

    Je m'excuse de demander de l'aide si tard mais je n'ai pas le choix.

    Dans mon application, j'utilise listdir pour afficher la liste de tous les fichiers présents dans un dossier mais l'appli ne fonctionne pas : Python me dit que le dossier n'existe pas.

    Quel est le problème ?

    Voici mon utilisation :
    os.listdir("\\note")
    


    Les erreurs :

    Citation : Python 3.2

    Traceback (most recent call last):
    File "C:\Users\Liloumuloup\Documents\Documents\Cours\BTS\AP\Python\pensebete.py", line 87, in <module>
    menu()
    File "C:\Users\Liloumuloup\Documents\Documents\Cours\BTS\AP\Python\pensebete.py", line 69, in menu
    os.listdir("\\note")
    WindowsError: [Error 3] Le chemin d’accès spécifié est introuvable: '\\note\\*.*'

    • Partager sur Facebook
    • Partager sur Twitter
      7 juin 2011 à 23:49:18

      l'argument n'est pas un chemin valide sur ton systeme(enfin il me semble, j'ai trop la flemme d'allumer mon pc sous windows), ni même sous linux ...
      ça doit être un chemin absolut genre os.listdir('c:\\bla\bla\bla\')
      ou relatif ça dépend de ce que tu veux faire.
      • Partager sur Facebook
      • Partager sur Twitter

      Python c'est bon, mangez-en. 

        8 juin 2011 à 9:22:37

        Le chemin peut être absolu ou relatif.
        Dans le cas d'un chemin relatif, le mieux est de commencer par mettre un point au début, pour montrer que c'est un chemin relatif, comme os.listdir('./mon_dossier/').
        En effet, le répertoire . c'est le répertoire où on est : soit celui donné à os.chdir, soit celui d'où a été lancé le programme.
        sinon, il faut préciser la lettre de lecteur sous windows :
        os.listdir('C:/Users/Liloumuloup/Documents/Documents/Cours/BTS/AP/Python/pensebete.py')(tu t'en fiches que ce soit / ou \\ : ça revient au même, python est intelligent) ou le dossier sous linux :
        os.listdir('/home/Liloumuloup/Documents/Cours/BTS/AP/Python/pensebete.py').

        Quand tu essayes d'accéder à \note, ça n'existe pas et ne peut pas exister sous windows.
        • Partager sur Facebook
        • Partager sur Twitter
          8 juin 2011 à 20:07:40

          Bonsoir,

          Il m'a semblé voir un jour (j'ai perdu la source), que pour utiliser os.listdir(), il était recommandé d'utiliser os.path.join().

          Par exemple, voir le contenu de /home/user/src :
          >>> chemin = os.path.join("/", "home", "user", "src")
          >>> os.listdir(chemin)


          L'avantage, quelque que soit l'OS : il suffit de décomposer le chemin, et l'interpréteur met les '/' ou '\' qui conviennent (les séparateurs appropriés, en somme), pas besoin de caractères d'échappement.

          Pour l'utilisation de os.path.join() : http://docs.python.org/library/os.path.html

          Bon courage.
          • Partager sur Facebook
          • Partager sur Twitter
            8 juin 2011 à 23:54:00

            Windows supporte très bien les "/" comme séparateur de chemin, donc inutile de mettre des \...
            • Partager sur Facebook
            • Partager sur Twitter
              8 juin 2011 à 23:57:38

              Même si mettre le bon séparateur avec os.path.join est plus propre, il est vrai que c'est un peu inutile. Après, ce sont deux écoles : le propre contraignant et le moins propre moins contraignant.
              • Partager sur Facebook
              • Partager sur Twitter
                9 juin 2011 à 0:20:08

                os.path ne sert à rien :

                http://pypi.python.org/pypi/path.py

                ce module est vraiment beaucoup plus pratique.
                • Partager sur Facebook
                • Partager sur Twitter
                  9 juin 2011 à 5:17:33

                  \\note, ça ressemble à un chemin réseau. Je suis pas convaincu que os.lisdtir les prenne en charge nativement.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    9 juin 2011 à 8:26:16

                    la chaîne "\\note" ne contient qu'un seul antislash...
                    • Partager sur Facebook
                    • Partager sur Twitter
                      6 août 2011 à 1:37:45

                      Bon désolée de répondre que maintenant mais en fait il s'agissait d'un caractère manquant ^^'

                      Problème résolu !! :)
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Help ! Listdir ne fonctionne pas !

                      × 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