Je préfère utiliser le module glob
, car il fait correspondance de motifs et d'expansion.
import glob
print(glob.glob("/home/adam/*"))
Il fait correspondance de motifs de manière intuitive
import glob
# Tous les fichiers et répertoires se terminant par .txt et ne commençant pas par un point :
print(glob.glob("/home/adam/*.txt"))
# Tous les fichiers et répertoires se terminant par .txt avec une profondeur de 2 dossiers, en ignorant les noms commençant par un point :
print(glob.glob("/home/adam/*/*.txt"))
Il renverra une liste avec les fichiers et répertoires interrogés :
['/home/adam/file1.txt', '/home/adam/file2.txt', .... ]
Remarquez que glob
ignore les fichiers et répertoires commençant par un point .
, car ils sont considérés comme des fichiers et répertoires cachés, sauf si le motif est quelque chose comme .*
.
Utilisez glob.escape
pour échapper les chaînes qui ne sont pas censées être des motifs :
print(glob.glob(glob.escape(nom_dossier) + "/*.txt"))
27 votes
Liés à Comment obtenir une liste de sous-répertoires