def scandir(path='.') -> os.DirEntry
scandir
permet d'itérer sur les entrées d'un répertoire de manière efficace.os.DirEntry
correspondant aux entrées du répertoire spécifié.
Un des principaux avantages de scandir
par rapport à listdir
est qu'il évite de charger toute la liste des
entrées du répertoire en mémoire avant de les traiter. Au lieu de renvoyer simplement les noms des fichiers comme listdir
,
scandir
produit des objets os.DirEntry
qui fournissent directement des métadonnées sur chaque entrée
(comme le type de fichier ou les informations de stat) sans nécessiter d'appels système supplémentaires. Cela améliore significativement les performances, en
particulier sur les systèmes de fichiers volumineux ou lorsqu'on a besoin d'accéder aux attributs des fichiers.
Return an iterator of DirEntry objects for given path. path can be specified as either str, bytes, or a path-like object. If path is bytes, the names of yielded DirEntry objects will also be bytes; in all other circumstances they will be str. If path is None, uses the path='.'.
Paramètre | Description |
---|---|
path : str |
Le chemin du répertoire à parcourir. Par défaut, c'est le répertoire courant. |
La valeur de retour est de type os.DirEntry.
Un itérateur qui produit des objets os.DirEntry
pour chaque entrée du répertoire.
FileNotFoundError :Cette exception sera déclenchée si le chemin spécifié n'existe pas.
NotADirectoryError :Cette exception sera déclenchée si le chemin spécifié n'est pas un répertoire.
PermissionError :Cette exception sera déclenchée si le programme n'a pas les permissions nécessaires pour accéder au répertoire.
TypeError :Cette exception sera déclenchée si le paramètre n'est pas une chaîne de caractères.
1 2 3 4 5 |
import os with os.scandir('/chemin/vers/repertoire') as entries: for entry in entries: print(entry.name, entry.is_dir()) |
Et voici les résultats produits par cet exemple.
$> python sample.py fichier1.txt False sous_repertoire True fichier2.txt False $>
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :