Comment puis-je lister le contenu d'un répertoire en Python?

Ça ne peut pas être dur, mais j'ai un blocage mental.

123
demandé sur SilentGhost 2010-05-03 19:56:03

7 réponses

import os
os.listdir("path") # returns list
184
répondu user85461 2010-05-03 15:57:30

Une façon :

import os
os.listdir("/home/username/www/")

Une Autre façon:

glob.glob("/home/username/www/*")

Exemples trouvés ici.

La méthode glob.glob ci-dessus ne listera pas les fichiers cachés.

40
répondu Trey Hunner 2013-02-08 09:14:13

os.walk peut être utilisé si vous avez besoin de récursivité:

import os
start_path = '.' # current directory
for path,dirs,files in os.walk(start_path):
    for filename in files:
        print os.path.join(path,filename)
27
répondu Mark Tolonen 2016-03-04 03:44:14

glob.glob ou os.listdir va le faire.

15
répondu Tuomas Pelkonen 2013-02-08 09:13:59

Le os module gère tout ça.

os.listdir(path)

Renvoie une liste contenant les noms des entrées du répertoire donné par path. La liste est dans un ordre arbitraire. Il ne comprend pas les rubriques spéciales".' et '.."même si elles sont présentes dans le répertoire.

Disponibilité: Unix, Windows.

10
répondu zdav 2012-11-20 07:44:04

En Python 3.4+, vous pouvez utiliser le nouveau pathlib paquet:

from pathlib import Path
for path in Path('.').iterdir():
    print(path)

Path.iterdir() retourne un itérateur, qui peut être facilement transformé en un list:

contents = list(Path('.').iterdir())
2
répondu jpyams 2018-05-08 19:55:54

Le code ci-dessous liste les répertoires et les fichiers dans le répertoire. L'autre est un système d'exploitation.marche

def print_directory_contents(sPath):
        import os                                       
        for sChild in os.listdir(sPath):                
            sChildPath = os.path.join(sPath,sChild)
            if os.path.isdir(sChildPath):
                print_directory_contents(sChildPath)
            else:
                print(sChildPath)
1
répondu Heenashree Khandelwal 2017-07-21 05:18:18