Arcpy 复制带有要素数据集的数据库

复制带有要素数据集的数据库,在复制要素数据集的时候要更改工作空间,显得稍微复杂,具体实现看代码注释:

import arcpy,os
inPath = r"D:\GHMerge.gdb"
arcpy.env.workspace = inPath
arcpy.env.overwriteoutput=1
outPath = r"D:"
outName = "GHMergeCopy.gdb"

'''复制要素类函数'''
def copyAll(outPath, outName):
  for fc in arcpy.ListFeatureClasses():
    print(" Feature Class: {0}".format(fc))
    arcpy.FeatureClassToFeatureClass_conversion(fc, outPath , os.path.splitext(fc)[0])
  iFeatureClassFull = None
#输出路径1,直接将原数据库中的要素类输出到新的数据库中
outPath1 = outPath + os.sep + outName
arcpy.CreateFileGDB_management(outPath, outName)
copyAll(outPath1, outName)
for iFD in arcpy.ListDatasets("","Feature"):
  print("Feature Dataset {0}:".format(iFD))
  desc = arcpy.Describe(iFD)
  sr = desc.spatialReference
  arcpy.CreateFeatureDataset_management(outPath1, iFD , sr)
  #更改工作空间
  arcpy.env.workspace = inPath + r"/" + str(iFD)
  #输出路径2,将原数据库要素数据集中的要素类输出到新数据库要素数据集中
  outPath2 = outPath1 + r"/" + str(iFD)
  copyAll(outPath2, outName)
  #更改工作空间
  arcpy.env.workspace = inPath

转载自:https://blog.csdn.net/sprintwater/article/details/39135497

You may also like...

退出移动版