Walk
Краткая информация
Функция Walk возвращает имена данных в структуре каталог/база данных проходом по дереву сверху вниз или снизу вверх. Каждый каталог/рабочая область дает кортеж из трех составляющих: путь к каталогу, имена каталогов и имена файлов.
Обсуждение
Модуль os содержит функцию os.walk, которую можно использовать для прохода по дереву директорий и поиска данных. Функция os.walk работает только с файлами и не поддерживает работу с содержимым баз данных, например, классов объектов баз геоданных, таблиц и растров. Для лучшей производительности рекомендуется использовать os.walk для файловых форматов. Функцию arcpy.da.Walk можно использовать для создания каталога данных
Синтаксис
Walk(workspace, {topdown}, {onerror}, {followlinks}, {datatype}, {type})
| Параметр | Объяснение | Тип данных |
|---|---|---|
|
workspace |
The top-level workspace that will be used. |
String |
|
topdown |
If When (Значение по умолчанию — True) |
Boolean |
|
onerror |
Errors are ignored by default. The This function can be used to report the error and continue with Примечание:The file name is available as the (Значение по умолчанию — None) |
Function |
|
followlinks |
By default, (Значение по умолчанию — 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 |
Выдает кортеж из трех элементов, который включает рабочую область, имена каталогов и имена файлов.
Примечание:Имена в этих списках включают только базовое имя; никакие компоненты пути не включаются. Чтобы получить полный путь (начинающийся с вершины) к файлу или директории в |
Пример кода
Используйте функцию 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))