Synthèse
Renvoie des noms de données dans une structure de répertoire et de base de données en parcourant l’arborescence du haut en bas ou de bas en haut. Chaque répertoire ou espace de travail donne un tuple de trois : chemin de répertoire, noms de répertoire et noms de fichier.
Discussion
Le module os inclut une fonction os.walk qui peut être utilisée pour parcourir une arborescence de répertoires et trouver des données. La fonction os.walk est basée sur des fichiers et ne reconnaît pas le contenu des bases de données comme les classes d’entités, les tables ou les rasters des géodatabases. Pour optimiser les performances, il est recommandé d’utiliser os.walk pour les formats basés sur des fichiers. La fonction arcpy.da.Walk peut être utilisée pour cataloguer des données.
Syntaxe
Walk (top, {topdown}, {onerror}, {followlinks}, {datatype}, {type})
Paramètre | Explication | Type de données |
top | The top-level workspace that will be used. | String |
topdown | If topdown is True or not specified, the tuple for a directory is generated before the tuple for any of its workspaces (workspaces are generated trom the top down). If topdown is False, the tuple for a workspace is generated after the tuple for all of its subworkspaces (workspaces are generated from the bottom up). When topdown is True, the dirnames list can be modified in place, and Walk will only recurse into the subworkspaces whose names remain in dirnames. This can be used to limit the search, impose a specific order of visiting, or inform Walk about directories the caller creates or renames before it resumes Walk again. Modifyingdirnames when topdown is False is ineffective, because in bottom-up mode, the workspaces indirnames are generated before dirpath is generated. (La valeur par défaut est True) | Boolean |
onerror | Errors are ignored by default. The onerror function will be called with an OSError instance. This function can be used to report the error and continue with Walk or raise an exception to cancel. Remarque :The file name is available as the filename attribute of the exception object. (La valeur par défaut est None) | Function |
followlinks | By default, Walk does not visit connection files. Set followlinks to True to visit connection files. (La valeur par défaut est False) | Boolean |
datatype | Specifies the data type that will be used to limit the results.
Multiple data types are supported if they're entered as a list or tuple.
(La valeur par défaut est None) | String |
type | Specifies whether feature and raster data types will be further limited by type.
Valid feature types are the following:
Valid raster types are the following:
Multiple data types are supported if they're entered as a list or tuple.
(La valeur par défaut est None) | String |
Type de données | Explication |
Generator | Donne un tuple de trois qui inclut l'espace de travail, les noms de répertoires et les noms de fichiers.
Remarque :Les noms dans les listes ne comprennent que le nom de base ; aucun composant du chemin n'est inclus. Pour obtenir le chemin complet (à partir de la racine) d’un fichier ou d’un répertoire dans dirpath, utilisez os.path.join(dirpath, name). |
Exemple de code
Utilisez la fonction Walk pour cataloguer des classes d’entités surfaciques.
import arcpy
import os
workspace = "c:/data"
feature_classes = []
walk = arcpy.da.Walk(workspace, datatype="FeatureClass", type="Polygon")
for dirpath, dirnames, filenames in walk:
for filename in filenames:
feature_classes.append(os.path.join(dirpath, filename))
Utilisez la fonction Walk pour cataloguer des données raster. Les rasters qui se trouvent dans un dossier nommé back_up sont ignorés.
import arcpy
import os
workspace = "c:/data"
rasters = []
walk = arcpy.da.Walk(workspace, topdown=True, datatype="RasterDataset")
for dirpath, dirnames, filenames in walk:
# Disregard any folder named 'back_up' in creating list of rasters
if "back_up" in dirnames:
dirnames.remove('back_up')
for filename in filenames:
rasters.append(os.path.join(dirpath, filename))
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?