Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Python] Qui-a-t-il dans un répertoire

Sujet résolu
    24 juillet 2011 à 23:57:21

    Bonsoir,

    Voila je viens vous voir car j'ai un petit souci. Mon but est de lister
    le contenu d'un répertoire et le mettre dans un fichier texte.

    Voici le code que j'utilise:

    import os, sys
    import glob
    
    dirs = os.listdir("C:\\Mes Docs\\Test prog")
    
    a = glob.glob("C:\\Mes Docs\\*.py")
    print(a)
    cf = open("C:\\video\\test.txt", "w")
    cf.write(str(a))
    cf.close()
    


    Et voila je résultat dans mon fichier texte:

    ['compteur.15.07.11.py', 'test 3.py', 'test algo.py', 'test1.py', 'test1test1.08.07.11.py', 'test3.08.07.11.py', 'test4.py', 'testecriture.py', 'testecriture2.py', 'testpython.py', 'testpython2.py', 'testpython3.py', 'testtest.08.07.11.py', 'testvariable.py']


    Donc voici ma question, je voudrais que chaque fichier texte soit sur un
    ligne différente dans mon fichier texte.

    compteur.py
    test.py
    test4.py
    ....
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      25 juillet 2011 à 0:31:25

      J'utilise pas glob, mais selon le format que tu indiques (une liste), je mettrais une boucle for

      import os, sys
      import glob
      
      dirs = os.listdir("C:\\Mes Docs\\Test prog")
      
      a = glob.glob("C:\\Mes Docs\\*.py")
      cf = open("C:\\video\\test.txt", "a") # attention important de mettre en mode append, sinon il supprime la ligne créée précédemment
      for fichier in a:
          cf.write(fichier+'\n')
      cf.close()
      
      • Partager sur Facebook
      • Partager sur Twitter
        25 juillet 2011 à 1:14:59

        ou ...
        cf.write('\n'.join(a))
        
        • Partager sur Facebook
        • Partager sur Twitter

        Python c'est bon, mangez-en. 

        Anonyme
          25 juillet 2011 à 10:09:43

          Citation

          ou ...

          cf.write('\n'.join(a))
          


          Bien vu ;)
          • Partager sur Facebook
          • Partager sur Twitter
            25 juillet 2011 à 13:41:52

            Merci bien, je test tout sa.

            Edit: dans le shell le résultat est parfait. Le problème
            maintenant c'est que dans mon fichier test.txt j'ai des doublons.
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              25 juillet 2011 à 13:59:09

              si ton fichier texte existait déjà c'est normal, supprime-le et ré-exécute ton script
              • Partager sur Facebook
              • Partager sur Twitter
                25 juillet 2011 à 14:08:08

                Je viens d'essayer 4 fois toujours la même chose.
                Je comprend pas, j'ai plusieurs fois les même lignes.
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  25 juillet 2011 à 14:15:32

                  ça fonctionne très bien chez moi
                  • Partager sur Facebook
                  • Partager sur Twitter
                    25 juillet 2011 à 14:25:21

                    Voici mon fichier.
                    On voie bien que sa ce répète.

                    C:\Mes Docs\Test prog\compteur.15.07.11.pyC:\Mes Docs\Test prog\compteur.15.07.11.py
                    C:\Mes Docs\Test prog\test 3.py
                    C:\Mes Docs\Test prog\test algo.py
                    C:\Mes Docs\Test prog\test1.py
                    C:\Mes Docs\Test prog\test1test1.08.07.11.py
                    C:\Mes Docs\Test prog\test3.08.07.11.py
                    C:\Mes Docs\Test prog\test4.py
                    C:\Mes Docs\Test prog\testecriture.py
                    C:\Mes Docs\Test prog\testecriture2.py
                    C:\Mes Docs\Test prog\testpython.py
                    C:\Mes Docs\Test prog\testpython2.py
                    C:\Mes Docs\Test prog\testpython3.py
                    C:\Mes Docs\Test prog\testtest.08.07.11.py
                    C:\Mes Docs\Test prog\testvariable.pyC:\Mes Docs\Test prog\test 3.pyC:\Mes Docs\Test prog\compteur.15.07.11.py
                    C:\Mes Docs\Test prog\test 3.py
                    C:\Mes Docs\Test prog\test algo.py
                    C:\Mes Docs\Test prog\test1.py
                    C:\Mes Docs\Test prog\test1test1.08.07.11.py
                    C:\Mes Docs\Test prog\test3.08.07.11.py
                    C:\Mes Docs\Test prog\test4.py
                    C:\Mes Docs\Test prog\testecriture.py
                    C:\Mes Docs\Test prog\testecriture2.py
                    C:\Mes Docs\Test prog\testpython.py
                    C:\Mes Docs\Test prog\testpython2.py
                    C:\Mes Docs\Test prog\testpython3.py
                    C:\Mes Docs\Test prog\testtest.08.07.11.py
                    C:\Mes Docs\Test prog\testvariable.pyC:\Mes Docs\Test prog\test algo.pyC:\Mes Docs\Test prog\compteur.15.07.11.py
                    C:\Mes Docs\Test prog\test 3.py
                    C:\Mes Docs\Test prog\test algo.py
                    C:\Mes Docs\Test prog\test1.py
                    C:\Mes Docs\Test prog\test1test1.08.07.11.py
                    C:\Mes Docs\Test prog\test3.08.07.11.py
                    C:\Mes Docs\Test prog\test4.py
                    C:\Mes Docs\Test prog\testecriture.py
                    C:\Mes Docs\Test prog\testecriture2.py
                    C:\Mes Docs\Test prog\testpython.py
                    C:\Mes Docs\Test prog\testpython2.py
                    C:\Mes Docs\Test prog\testpython3.py
                    C:\Mes Docs\Test prog\testtest.08.07.11.py
                    C:\Mes Docs\Test prog\testvariable.pyC:\Mes Docs\Test prog\test1.pyC:\Mes Docs\Test prog\compteur.15.07.11.py
                    C:\Mes Docs\Test prog\test 3.py
                    C:\Mes Docs\Test prog\test algo.py
                    C:\Mes Docs\Test prog\test1.py
                    C:\Mes Docs\Test prog\test1test1.08.07.11.py
                    C:\Mes Docs\Test prog\test3.08.07.11.py
                    C:\Mes Docs\Test prog\test4.py
                    C:\Mes Docs\Test prog\testecriture.py
                    C:\Mes Docs\Test prog\testecriture2.py
                    C:\Mes Docs\Test prog\testpython.py
                    C:\Mes Docs\Test prog\testpython2.py
                    C:\Mes Docs\Test prog\testpython3.py
                    C:\Mes Docs\Test prog\testtest.08.07.11.py
                    C:\Mes Docs\Test prog\testvariable.pyC:\Mes Docs\Test prog\test1test1.08.07.11.pyC:\Mes Docs\Test prog\compteur.15.07.11.py
                    C:\Mes Docs\Test prog\test 3.py
                    C:\Mes Docs\Test prog\test algo.py
                    C:\Mes Docs\Test prog\test1.py
                    C:\Mes Docs\Test prog\test1test1.08.07.11.py
                    C:\Mes Docs\Test prog\test3.08.07.11.py
                    C:\Mes Docs\Test prog\test4.py
                    C:\Mes Docs\Test prog\testecriture.py
                    C:\Mes Docs\Test prog\testecriture2.py
                    C:\Mes Docs\Test prog\testpython.py
                    C:\Mes Docs\Test prog\testpython2.py
                    C:\Mes Docs\Test prog\testpython3.py
                    C:\Mes Docs\Test prog\testtest.08.07.11.py
                    C:\Mes Docs\Test prog\testvariable.pyC:\Mes Docs\Test prog\test3.08.07.11.pyC:\Mes Docs\Test prog\compteur.15.07.11.py
                    C:\Mes Docs\Test prog\test 3.py
                    C:\Mes Docs\Test prog\test algo.py
                    C:\Mes Docs\Test prog\test1.py
                    C:\Mes Docs\Test prog\test1test1.08.07.11.py
                    C:\Mes Docs\Test prog\test3.08.07.11.py
                    C:\Mes Docs\Test prog\test4.py
                    C:\Mes Docs\Test prog\testecriture.py
                    C:\Mes Docs\Test prog\testecriture2.py
                    C:\Mes Docs\Test prog\testpython.py
                    C:\Mes Docs\Test prog\testpython2.py
                    C:\Mes Docs\Test prog\testpython3.py
                    C:\Mes Docs\Test prog\testtest.08.07.11.py
                    C:\Mes Docs\Test prog\testvariable.pyC:\Mes Docs\Test prog\test4.pyC:\Mes Docs\Test prog\compteur.15.07.11.py
                    C:\Mes Docs\Test prog\test 3.py
                    C:\Mes Docs\Test prog\test algo.py
                    C:\Mes Docs\Test prog\test1.py
                    C:\Mes Docs\Test prog\test1test1.08.07.11.py
                    C:\Mes Docs\Test prog\test3.08.07.11.py
                    C:\Mes Docs\Test prog\test4.py
                    C:\Mes Docs\Test prog\testecriture.py
                    C:\Mes Docs\Test prog\testecriture2.py
                    C:\Mes Docs\Test prog\testpython.py
                    C:\Mes Docs\Test prog\testpython2.py
                    C:\Mes Docs\Test prog\testpython3.py
                    C:\Mes Docs\Test prog\testtest.08.07.11.py
                    C:\Mes Docs\Test prog\testvariable.pyC:\Mes Docs\Test prog\testecriture.pyC:\Mes Docs\Test prog\compteur.15.07.11.py
                    C:\Mes Docs\Test prog\test 3.py
                    C:\Mes Docs\Test prog\test algo.py
                    C:\Mes Docs\Test prog\test1.py
                    C:\Mes Docs\Test prog\test1test1.08.07.11.py
                    C:\Mes Docs\Test prog\test3.08.07.11.py
                    C:\Mes Docs\Test prog\test4.py
                    C:\Mes Docs\Test prog\testecriture.py
                    C:\Mes Docs\Test prog\testecriture2.py
                    C:\Mes Docs\Test prog\testpython.py
                    C:\Mes Docs\Test prog\testpython2.py
                    C:\Mes Docs\Test prog\testpython3.py
                    C:\Mes Docs\Test prog\testtest.08.07.11.py
                    C:\Mes Docs\Test prog\testvariable.pyC:\Mes Docs\Test prog\testecriture2.pyC:\Mes Docs\Test prog\compteur.15.07.11.py
                    C:\Mes Docs\Test prog\test 3.py
                    C:\Mes Docs\Test prog\test algo.py
                    C:\Mes Docs\Test prog\test1.py
                    C:\Mes Docs\Test prog\test1test1.08.07.11.py
                    C:\Mes Docs\Test prog\test3.08.07.11.py
                    C:\Mes Docs\Test prog\test4.py
                    C:\Mes Docs\Test prog\testecriture.py
                    C:\Mes Docs\Test prog\testecriture2.py
                    C:\Mes Docs\Test prog\testpython.py
                    C:\Mes Docs\Test prog\testpython2.py
                    C:\Mes Docs\Test prog\testpython3.py
                    C:\Mes Docs\Test prog\testtest.08.07.11.py
                    C:\Mes Docs\Test prog\testvariable.pyC:\Mes Docs\Test prog\testpython.pyC:\Mes Docs\Test prog\compteur.15.07.11.py
                    C:\Mes Docs\Test prog\test 3.py
                    C:\Mes Docs\Test prog\test algo.py
                    C:\Mes Docs\Test prog\test1.py
                    C:\Mes Docs\Test prog\test1test1.08.07.11.py
                    C:\Mes Docs\Test prog\test3.08.07.11.py
                    C:\Mes Docs\Test prog\test4.py
                    C:\Mes Docs\Test prog\testecriture.py
                    C:\Mes Docs\Test prog\testecriture2.py
                    C:\Mes Docs\Test prog\testpython.py
                    C:\Mes Docs\Test prog\testpython2.py
                    C:\Mes Docs\Test prog\testpython3.py
                    C:\Mes Docs\Test prog\testtest.08.07.11.py
                    C:\Mes Docs\Test prog\testvariable.pyC:\Mes Docs\Test prog\testpython2.pyC:\Mes Docs\Test prog\compteur.15.07.11.py
                    C:\Mes Docs\Test prog\test 3.py
                    C:\Mes Docs\Test prog\test algo.py
                    C:\Mes Docs\Test prog\test1.py
                    C:\Mes Docs\Test prog\test1test1.08.07.11.py
                    C:\Mes Docs\Test prog\test3.08.07.11.py
                    C:\Mes Docs\Test prog\test4.py
                    C:\Mes Docs\Test prog\testecriture.py
                    C:\Mes Docs\Test prog\testecriture2.py
                    C:\Mes Docs\Test prog\testpython.py
                    C:\Mes Docs\Test prog\testpython2.py
                    C:\Mes Docs\Test prog\testpython3.py
                    C:\Mes Docs\Test prog\testtest.08.07.11.py
                    C:\Mes Docs\Test prog\testvariable.pyC:\Mes Docs\Test prog\testpython3.pyC:\Mes Docs\Test prog\compteur.15.07.11.py
                    C:\Mes Docs\Test prog\test 3.py
                    C:\Mes Docs\Test prog\test algo.py
                    C:\Mes Docs\Test prog\test1.py
                    C:\Mes Docs\Test prog\test1test1.08.07.11.py
                    C:\Mes Docs\Test prog\test3.08.07.11.py
                    C:\Mes Docs\Test prog\test4.py
                    C:\Mes Docs\Test prog\testecriture.py
                    C:\Mes Docs\Test prog\testecriture2.py
                    C:\Mes Docs\Test prog\testpython.py
                    C:\Mes Docs\Test prog\testpython2.py
                    C:\Mes Docs\Test prog\testpython3.py
                    C:\Mes Docs\Test prog\testtest.08.07.11.py
                    C:\Mes Docs\Test prog\testvariable.pyC:\Mes Docs\Test prog\testtest.08.07.11.pyC:\Mes Docs\Test prog\compteur.15.07.11.py
                    C:\Mes Docs\Test prog\test 3.py
                    C:\Mes Docs\Test prog\test algo.py
                    C:\Mes Docs\Test prog\test1.py
                    C:\Mes Docs\Test prog\test1test1.08.07.11.py
                    C:\Mes Docs\Test prog\test3.08.07.11.py
                    C:\Mes Docs\Test prog\test4.py
                    C:\Mes Docs\Test prog\testecriture.py
                    C:\Mes Docs\Test prog\testecriture2.py
                    C:\Mes Docs\Test prog\testpython.py
                    C:\Mes Docs\Test prog\testpython2.py
                    C:\Mes Docs\Test prog\testpython3.py
                    C:\Mes Docs\Test prog\testtest.08.07.11.py
                    C:\Mes Docs\Test prog\testvariable.pyC:\Mes Docs\Test prog\testvariable.pyC:\Mes Docs\Test prog\compteur.15.07.11.py
                    C:\Mes Docs\Test prog\test 3.py
                    C:\Mes Docs\Test prog\test algo.py
                    C:\Mes Docs\Test prog\test1.py
                    C:\Mes Docs\Test prog\test1test1.08.07.11.py
                    C:\Mes Docs\Test prog\test3.08.07.11.py
                    C:\Mes Docs\Test prog\test4.py
                    C:\Mes Docs\Test prog\testecriture.py
                    C:\Mes Docs\Test prog\testecriture2.py
                    C:\Mes Docs\Test prog\testpython.py
                    C:\Mes Docs\Test prog\testpython2.py
                    C:\Mes Docs\Test prog\testpython3.py
                    C:\Mes Docs\Test prog\testtest.08.07.11.py
                    C:\Mes Docs\Test prog\testvariable.py
                    
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      25 juillet 2011 à 14:28:50

                      Non ça fonctionne très bien, certes tu as des noms de fichiers identiques, mais les répertoires ne le sont pas, si tu regardes bien. ;)

                      Edit : Il y en a certains avec le même répertoire effectivement, je pense que tu n'as pas supprimé le fichier txt comme demandé.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        25 juillet 2011 à 14:34:16

                        D'accord alors pourquoi la première ligne ce répète dés
                        le début et est ce que c'est pas possible d’éviter que sa
                        ce répète ainsi.

                        edit: J'ai déjà eu ce problème, je pense que c'est la boucle for.
                        (et si j'ai supprimer le fichier à chaque fois)
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Anonyme
                          25 juillet 2011 à 14:36:41

                          C'est quoi que tu souhaites exactement, avoir tout le path? le nom du fichier + son extension?

                          • Partager sur Facebook
                          • Partager sur Twitter
                            25 juillet 2011 à 14:37:36

                            C'est à cause de l'option 'a' que tu passes à la fonction open (tout est rajouté dans le fichier). Si tu ne veux plus de ça, il faut que tu écrases le fichier en utilisant l'option 'w'.
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Zeste de Savoir, le site qui en a dans le citron !
                            Anonyme
                              25 juillet 2011 à 14:39:17

                              Ah ba si c'est ça autant pour moi :p

                              Même résultat qu'avec 'a', bizarre!
                              • Partager sur Facebook
                              • Partager sur Twitter
                                25 juillet 2011 à 14:39:56

                                Voir tout les fichier dans ce répertoire avec une extension (.avi, .py, .txt, ...)
                                Et le fichier je le supprime a chaque fois, et j'ai déjà tester l'option "w" et
                                c'est la même chose.

                                edit: C'est bien juste l'option a changer, si c'est ça pour moi rien à changer.
                                Ce qui est étrange c'est que dans le shell il y a le résultat que je souhaite.
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  25 juillet 2011 à 14:42:10

                                  Montre ton code complet, pour voir ?

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Zeste de Savoir, le site qui en a dans le citron !
                                    25 juillet 2011 à 14:45:50

                                    Le voici:

                                    import os, sys
                                    import glob
                                    
                                    dirs = os.listdir("C:\\Mes Docs\\Test prog")
                                    
                                    a = glob.glob("C:\\Mes Docs\\Test prog\\*.py")
                                    cf = open("C:\\video\\test.txt", "w") 
                                    for fichier in a:
                                        cf.write(fichier+'\n'.join(a))
                                        print(fichier)
                                    cf.close()
                                    
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Anonyme
                                      25 juillet 2011 à 14:46:21

                                      cf = open(ton_fichier.txt, 'a')
                                      for fichier in os.listdir(ton_repertoire):
                                          cf.write(fichier+'\n')
                                      


                                      Citation

                                      Voir tout les fichier dans ce répertoire avec une extension (.avi, .py, .txt, ...)



                                      Le code ci-dessus ne fait pas exactement ce que tu demandes, il met juste les noms de fichier dans un fichier texte.

                                      Si tu veux les supprimer ce n'est pas la bonne façon de faire, tu peux directement supprimer un répertoire.
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        25 juillet 2011 à 14:47:58

                                        Je veux avec ce script créé un fichier de configuration qui va
                                        me servir pour autre chose. Donc il me faut le nom des fichiers
                                        dans le répertoire. Car dans le dossier des fichiers vont être
                                        supprimer ou rajouter.
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          25 juillet 2011 à 14:50:19

                                          L'erreur venait bien de là ou je pensais : tu as remplacé fichier+'n' par fichier+'n'.join(a).

                                          Remplace plutôt par ça :


                                          import os, sys
                                          import glob
                                          
                                          dirs = os.listdir("C:\\Mes Docs\\Test prog")
                                          
                                          a = glob.glob("C:\\Mes Docs\\Test prog\\*.py")
                                          cf = open("C:\\video\\test.txt", "w")
                                          files = '\n'.join(a) 
                                          cf.write(files)
                                          print(files) 
                                          cf.close()
                                          
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          Zeste de Savoir, le site qui en a dans le citron !
                                            25 juillet 2011 à 14:53:58

                                            Merci bien sa marche nickel. Est que tu pourrai commenter ton code
                                            s'il te plait pour que je comprenne tout. En tout cas merci à tous.
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                            Anonyme
                                              25 juillet 2011 à 14:54:12

                                              Ah ba oui, si il ne fait pas ce qu'on dit :p
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                25 juillet 2011 à 14:59:01

                                                Ceci devrait valoir un long discours.

                                                >>> a = ['bla', 'bli', 'blou', 'blé']
                                                >>> ':'.join(a)
                                                'bla:bli:blou:blé'
                                                >>> ','.join(a)
                                                'bla,bli,blou,blé'
                                                >>> print('\n'.join(a))
                                                bla
                                                bli
                                                blou
                                                blé
                                                
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                Zeste de Savoir, le site qui en a dans le citron !

                                                [Python] Qui-a-t-il dans un répertoire

                                                × 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