Resumen
Devuelve los nombres de datos del directorio y las estructuras de base de datos recorriendo el árbol de arriba abajo o de abajo arriba. Cada directorio o espacio de trabajo produce una triple tupla: ruta del directorio, nombres de directorio y nombres de archivo.
Debate
El módulo os contiene una función os.walk que se puede utilizar para recorrer un árbol de directorios y buscar datos. La función os.walk está basada en archivos y no reconoce el contenido de base de datos como clases de entidad de geodatabase, tablas ni rásteres. Para un mejor rendimiento, se recomienda utilizar os.walk para los formatos basados en archivos. La función arcpy.da.Walk se puede utilizar para catalogar datos.
Sintaxis
Walk (top, {topdown}, {onerror}, {followlinks}, {datatype}, {type})
Parámetro | Explicación | Tipo de datos |
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. (El valor predeterminado es 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. Nota:The file name is available as the filename attribute of the exception object. (El valor predeterminado es None) | Function |
followlinks | By default, Walk does not visit connection files. Set followlinks to True to visit connection files. (El valor predeterminado es 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.
(El valor predeterminado es 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.
(El valor predeterminado es None) | String |
Tipo de datos | Explicación |
Generator | Genera una tupla de tres que incluye el espacio de trabajo, nombres de directorio y nombres de archivo.
Nota:Los nombres de las listas incluyen solo el nombre base, no se incluyen componentes de la ruta. Para obtener de ruta completa (comenzando por la parte superior) de un archivo o directorio en dirpath, utilice os.path.join(dirpath, name). |
Muestra de código
Use la función Walk para catalogar clases de entidad poligonal.
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))
Use la función Walk para catalogar datos ráster. Se omitirán todos los rásteres de una carpeta llamada back_up.
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))