在进行地理处理时我们有时需要检查数据是否存在,然后用列表函数返回列表数据,在列表数据对象中,还可以用对象的描述信息做判断,做不同的处理。
如需判断对象是否存在,可用 Exists 函数;列表函数以 “List” 开头,如 ListDatasets、ListFeatureClasses、ListFiles……Describe 函数返回一个包含属性组的动态对象。这些动态生成的 Describe 对象中包含的属性组内容取决于所要描述的数据类型。据所描述的数据类型,会有不同的描述属性可供使用。可以使用 Python 的 hasattr() 函数进行检查。
# -*- coding: utf-8 -*-
import arcpy
from arcpy import env
workspace = r"E:\EsriPress\Python\Data\Exercise06"
env.workspace = workspace
workspace_desc = arcpy.Describe(workspace)
print("workspaceType:" + workspace_desc.workspaceType)
cities_fc = "cities.shp"
shape_exists = arcpy.Exists(cities_fc) # 对象是否存在
if shape_exists:
shape_desc = arcpy.Describe(cities_fc)
print("shapeType:" + shape_desc.shapeType) # 据所描述的数据类型,会有不同的描述属性可供使用
fcs = arcpy.ListFeatureClasses("c*", "Polygon") # 第一个参数支持通配符过滤
print("FeatureClasses:")
print(fcs)
网友评论