Краткая информация
Возвращает имена данных в структуре каталог/база данных проходом по дереву сверху вниз или снизу вверх. Каждый каталог/рабочая область дает кортеж из трех составляющих: путь к каталогу, имена каталогов и имена файлов.
Обсуждение
Модуль os содержит функцию os.walk, которую можно использовать для прохода по дереву директорий и поиску данных. Функция os.walk работает только с файлами и не поддерживает работу с содержимым баз данных, например, классов объектов баз геоданных, таблиц и растров. Для лучшей производительности рекомендуется использовать os.walk для файловых форматов. Функцию arcpy.da.Walk можно использовать для создания каталога данных
Синтаксис
Walk (top, {topdown}, {onerror}, {followlinks}, {datatype}, {type})
Параметр | Описание | Тип данных |
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. (Значение по умолчанию — 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. Примечание:The file name is available as the filename attribute of the exception object. (Значение по умолчанию — None) | Function |
followlinks | By default, Walk does not visit connection files. Set followlinks to True to visit connection files. (Значение по умолчанию — 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.
(Значение по умолчанию — 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.
(Значение по умолчанию — None) | String |
Тип данных | Описание |
Generator | Выдает кортеж из трех элементов, который включает рабочую область, имена каталогов и имена файлов.
Примечание:Имена в этих списках включают только базовое имя; никакие компоненты пути не включаются. Чтобы получить полный путь (начинающийся с вершины) к файлу или директории в dirpath, выполните os.path.join(dirpath, name). |
Пример кода
Использует функцию Walk для создания каталога полигональных классов объектов.
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))
Использует функцию Walk для создания каталога растровых данных. Любые растры в папке с именем 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))