Résumé
Génèrer des noms de données dans une structure répertoire/base de données en parcourant l'arborescence de haut en bas ou de bas en haut. Chaque répertoire/espace de travail donne un tuple de trois : chemin du répertoire, noms de répertoires et noms de fichiers.
Discussion
Le module Python os inclut une fonction os.walk qui peut être utilisée pour parcourir une arborescence de répertoires et trouver des données. os.walk est basé sur des fichiers et ne reconnaît pas le contenu des bases de données comme les classes d’entités des géodatabases, les tables ou les rasters. arcpy.da.Walk peut être utilisé pour cataloguer les 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 top-down). If topdown is False, the tuple for a workspace is generated after the tuple for all of its subworkspaces (workspaces are generated 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 even to inform Walk about directories the caller creates or renames before it resumes Walk again. Modifying dirnames when topdown is False is ineffective, because in bottom-up mode the workspaces in dirnames are generated before dirpath itself 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. The function can be used to report the error and continue with the walk or raise an exception to abort. (La valeur par défaut est None) | Function |
followlinks | By default, Walk does not walk into connection files. Set followlinks to True to visit connection files. (La valeur par défaut est False) | Boolean |
datatype | The data type to limit the results returned. Valid data types are the following:
Multiple data types are supported if entered as a list or tuple.
(La valeur par défaut est None) | String |
type | Feature and raster data types can be further limited by type.
Valid feature types are the following:
Valid raster types are:
Multiple data types are supported if entered as a list or tuple.
(La valeur par défaut est None) | String |
Valeur renvoyée
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.
|
Exemple de code
Exemple 1 d'utilisation de la fonction Walk
Utilisez la fonction Walk pour cataloguer les 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))
Exemple 2 d'utilisation de la fonction Walk
Utilisez la fonction Walk pour cataloguer les données raster. Les rasters qui se trouvent dans le dossier back_up seront 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))