前提: 已安装 arcgis desktop(ArcMap) 软件
以海南行政区shp文件为例,如下图,需要将各个地市分割成单独的shp文件:
可通过arcpy的选择函数 Select_analysis 实现:
还用到了SearchCursor函数,建立游标读取字段的属性信息
资源下载:传送门:海南行政区shp数据和实现的python脚本
python脚本:
# - * - coding: utf-8 -
import arcpy
#工作空间
arcpy.env.workspace = "D:/shpData"
#输入要素
inFc = "海南.shp"
#建立游标读取"海南.shp"里的"cityName"字段信息
cursor = arcpy.SearchCursor("D:/shpData/海南.shp",fields="cityName")
for row in cursor: #遍历字段
city = row.getValue("cityName") #获取cityName字段信息
outFc = "D:/shpData/" + city + ".shp" #导出的要素路径和名称
#where_clause = '"NAME" = \'%s\''%(city)
where_clause = '"cityName"' + " = " + "'" + city + "'" #导出要素的条件,即根据不同cityName导出
if (arcpy.Exists(outFc) == True): #判断是否已有相同名称的导出要素
arcpy.Delete_management(outFc) #删除有相同名称的要素
arcpy.Select_analysis(inFc, outFc, where_clause) #根据条件导出要素
print (u"成功导出:" + outFc)
else:
arcpy.Select_analysis(inFc, outFc, where_clause) #根据条件导出要素
print (u"成功导出:" + outFc)
执行结果: