ArcGIS Desktop

  • 文档
  • 支持

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS for Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

Walk

  • 摘要
  • 说明
  • 语法
  • 代码示例

摘要

通过从上至下或从下至上遍历树,在目录/数据库结构中生成数据名称。每个目录/工作空间将生成一个三元组:目录路径、目录名称和文件名称。

说明

注:

Walk 函数在 ArcGIS 10.1 Service Pack 1 中可用。

Python os 模块包括 os.walk 函数,可用于遍历目录树并查找数据。os.walk 基于文件,不识别地理数据要素类、表或栅格等数据库内容。arcpy.da.Walk 可用于为数据创建目录。

语法

Walk (top, {topdown}, {onerror}, {followlinks}, {datatype}, {type})
参数说明数据类型
top

将使用的顶级工作空间。

String
topdown

如果 topdown 是 True 或者未指定,则目录组会在其任意工作组之前生成(从上至下生成工作空间)。如果 topdown 是 False,则此工作空间组将在所有子工作空间组之后生成(从下至上生成工作空间)。

如果 topdown 是 True,则可以在原位修改 dirnames 列表,Walk() 将仅递归进入到名称仍然保留在 dirnames 中的子工作空间中。这可用于限制搜索、实施特定访问顺序,甚至在 Walk() 再次恢复 Walk() 之前向其通知调用程序创建或重命名的目录。在 topdown 是 False 时 修改 dirnames 是无效的,因为在从下至上模式中, dirnames 中的工作空间是在生成 dirpath 本身之前生成的。

(默认值为 True)

Boolean
onerror

默认情况下,忽略错误。将使用 OSError 实例调用 onerror 函数。

此函数可以用于报告错误并继续使用 walk 或引发异常而导致中止。

注:

文件名称可用作异常对象的 filename 属性。

(默认值为 None)

Function
followlinks

默认情况下,Walk() 不会进入连接文件中。将 followlinks 设置为 True 以访问连接文件。

(默认值为 False)

Boolean
datatype

限制返回的结果的数据类型。有效数据类型如下:

  • Any —返回所有数据类型。相当于使用 None 或跳过此参数。
  • CadDrawing
  • CadastralFabric
  • Container
  • FeatureClass
  • FeatureDataset
  • GeometricNetwork
  • LasDataset
  • Layer
  • Locator
  • Map
  • MosaicDataset
  • NetworkDataset
  • PlanarGraph
  • RasterCatalog
  • RasterDataset
  • RelationshipClass
  • RepresentationClass
  • Style
  • Table
  • Terrain
  • Text
  • Tin
  • Tool
  • Toolbox
  • Topology

如果作为列表或组进行输入,则支持多个数据类型。

for dirpath, dirnames, filenames in arcpy.da.Walk(workspace,
    datatype=['MosaicDataset', 'RasterDataset']):

(默认值为 None)

String
type

可按类型进一步限制要素和栅格数据类型。

  • All —返回所有类型。相当于使用 None 或跳过此参数。
  • Any —返回所有类型。相当于使用 None 或跳过此参数。

有效要素类型如下:

  • Multipatch — 仅返回多面体要素类。
  • Multipoint —仅返回多点要素类。
  • Point —仅返回点要素类。
  • Polygon —仅返回面要素类。
  • Polyline —仅返回折线要素类。

有效栅格类型为:

  • BIL — Esri 波段按行交叉格式文件
  • BIP — Esri 波段按像元交叉格式文件
  • BMP — 位图图形栅格数据集格式
  • BSQ — Esri 波段顺序格式文件
  • DAT — ENVI DAT 文件
  • GIF — 栅格数据集的图形交换格式
  • GRID — Esri Grid 栅格数据集格式
  • IMG — ERDAS IMAGINE 栅格数据格式
  • JP2 — JPEG 2000 栅格数据集格式
  • JPG — 联合图像专家组栅格数据集格式
  • PNG — 可移植网络图形栅格数据集格式
  • TIF — 栅格数据集的标记图像文件格式

如果作为列表或组进行输入,则支持多个数据类型。

for dirpath, dirnames, filenames in arcpy.da.Walk(workspace,
    datatype='FeatureClass', type=['Polygon', 'Polyline']):

(默认值为 None)

String

返回值

数据类型说明
Generator

提供的三元组包括:工作空间、目录名称和文件名称。

  • dirpath 是以字符串形式显示的工作空间路径。
  • dirnames 是子目录的名称列表和 dirpath 中的其他工作空间。
  • filenames 是 dirpath 中的非工作空间内容的名称列表。
注:

列表中的名称仅包括基本名称,不包括路径组件。要获得 dirpath 中的文件或目录的完整路径(从顶部开始),请执行 os.path.join(dirpath, name)。

代码示例

Walk 示例 1

使用 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 示例 2

使用 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))

相关主题

  • 创建数据列表

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • 内部人员博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2018 Esri. | 隐私政策 | 法律声明