文章目录
- 前言
- 一、检查要素类/要素数据集是否存在
- 二、检查工作空间/文件数据库
- 三、 检查栅格数据
- 四、工作空间环境的影响
- 五、路径说明
- 总结
前言
arcpy.Exists() 函数用于检查地理数据元素(要素类、表、数据集、shapefile、工作空间、图层和其他文件)是否存在。
基本语法
python arcpy.Exists(dataset)返回值
如果数据存在:返回 True
如果数据不存在:返回 False
一、检查要素类/要素数据集是否存在
Python# -*- coding: utf-8 -*-importarcpy# 检查要素类是否存在fc=r"D:\Achievement\GZH\Cities.shp"ifarcpy.Exists(fc):print("{} 存在".format(fc))# 执行相关操作else:print("{} 不存在".format(fc))二、检查工作空间/文件数据库
# -*- coding: utf-8 -*-importarcpy# 检查文件文件数据库gdb=r"D:\Achievement\GZH\Test.gdb"ifarcpy.Exists(gdb):print("地理数据库存在")#地理数据库存在三、 检查栅格数据
Python# -*- coding: utf-8 -*-importarcpy raster=r" D:\Achievement\GZH \DOM.tif"ifarcpy.Exists(raster):print("栅格数据存在")路径格式: python# 正确:使用原始字符串或转义反斜杠arcpy.Exists(r"C:\Data\test.shp")arcpy.Exists("C:\\Data\\test.shp")# 不正确:单反斜杠arcpy.Exists("C:\Data\test.shp")# 可能出错四、工作空间环境的影响
python# 设置工作空间后,可以使用相对路径arcpy.env.workspace=r"C:\Data\Test.gdb"ifarcpy.Exists("Cities"):# 相对于C:\Data\Test.gdb\ Citiesprint("要素类存在")五、路径说明
由于 Exists 函数能够识别目录路径,所以在检查地理数据是否存在时,必须使用该函数。目录路径是仅 ArcGIS 可识别的路径名称。例如:C:\Data\Test.gdb\ Cities, 是指在文件地理数据库 Test.gdb的Cities要素类。就 Windows 操作系统而言,这不是有效的系统路径,因为 Test.gdb(文件夹)并不包含名为Cities的文件。简言之,Windows 不了解要素类,因此用户不能使用像 os.path.exists 这样的 Python 存在函数。
总结
arcpy.Exists() 是在GIS数据管理中非常重要的函数,常用于避免工具执行错误和数据重复创建的问题。