Ça ne peut pas être difficile, mais j'ai un blocage mental.
import os
os.listdir("path") # returns list
Une manière:
import os
os.listdir("/home/username/www/")
glob.glob("/home/username/www/*")
Le glob.glob
La méthode ci-dessus ne listera pas les fichiers cachés.
Depuis que j'ai initialement répondu à cette question il y a des années, pathlib a été ajouté à Python. Ma méthode préférée pour répertorier un répertoire implique généralement la méthode iterdir
sur les objets Path
:
from pathlib import Path
print(*Path("/home/username/www/").iterdir(), sep="\n")
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)
glob.glob
ou os.listdir
le fera.
Le module os
gère tout cela.
os.listdir(path)
Retourne une liste contenant les noms des entrées du répertoire donné par chemin. La liste est dans un ordre arbitraire. Il n'inclut pas les entrées spéciales '.' et '..' même s'ils sont présents dans le répertoire.
Disponibilité: Unix, Windows.
Dans Python 3.4+, vous pouvez utiliser le nouveau package pathlib
:
from pathlib import Path
for path in Path('.').iterdir():
print(path)
Path.iterdir()
retourne un itérateur, qui peut facilement être transformé en list
:
contents = list(Path('.').iterdir())
Depuis Python 3.5, vous pouvez utiliser os.scandir
.
La différence est qu’il renvoie le fichier entrées pas les noms. Sur certains systèmes d’exploitation comme Windows, cela signifie que vous n’avez pas à os.path.isdir/file
pour savoir s’il s’agit d’un fichier ou non, et cela économise du temps de calcul, car stat
est déjà fait lors de la numérisation du répertoire dans Windows:
exemple pour lister un répertoire et imprimer des fichiers plus gros que max_value
octets:
for dentry in os.scandir("/path/to/dir"):
if dentry.stat().st_size > max_value:
print("{} is biiiig".format(dentry.name))
(Lire une réponse détaillée basée sur mes performances ici )
Le code ci-dessous répertorie les répertoires et les fichiers du répertoire. L'autre est os.walk
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)