python写一个能将多个GDB中的shp文件合并到一个GDB中,名字相同的shp合并
时间: 2023-04-08 16:03:19 浏览: 85
可以使用arcpy模块来实现这个功能,具体代码如下:
import arcpy
import os
# 设置工作空间
arcpy.env.workspace = r"C:\data"
# 获取所有的GDB文件
gdb_list = arcpy.ListWorkspaces(workspace_type="FileGDB")
# 创建一个新的GDB
new_gdb = arcpy.CreateFileGDB_management(r"C:\data", "merged.gdb")
# 遍历所有的GDB文件
for gdb in gdb_list:
# 获取GDB中所有的shp文件
shp_list = arcpy.ListFeatureClasses(feature_dataset="", wildcard="", feature_type="Polygon", workspace=gdb)
# 遍历所有的shp文件
for shp in shp_list:
# 获取shp文件的名称
shp_name = os.path.splitext(shp)[0]
# 判断新的GDB中是否已经存在同名的shp文件
if arcpy.Exists(os.path.join(new_gdb, shp_name)):
# 如果存在,则将当前的shp文件合并到已有的shp文件中
arcpy.Append_management(os.path.join(gdb, shp), os.path.join(new_gdb, shp_name), "NO_TEST")
else:
# 如果不存在,则直接将当前的shp文件复制到新的GDB中
arcpy.CopyFeatures_management(os.path.join(gdb, shp), os.path.join(new_gdb, shp_name))
print("合并完成!")