本文为另一篇文章“ArcGIS中MDB与GDB一键互转的实现方法”的python实现代码

#-*- coding: utf-8 -*-
#此脚本可用于GDB与MDB的互转
import arcpy
import os
print("请输入数据库")
SRSJK = r'D:\工作\数据处理\20250616\Project360702.gdb'
clean_path = SRSJK.rstrip(os.sep)
print(clean_path)
srsjkhzm = os.path.splitext(clean_path)[1]
print("已输入数据库,您输入的数据库类型为" + srsjkhzm)
print("请输入输出数据库所在文件夹")
SCSJKLJ = r'D:\工作\数据处理\20250616'
print("已输入存储输出数据库的文件夹")
print("请输入输出数据库类型'MDB或GDB'")
desc = arcpy.Describe(SRSJK)
srsjkmc = desc.name
SCSJKLX = "MDB"
if SCSJKLX == "MDB":
    SCSJK = arcpy.CreatePersonalGDB_management(SCSJKLJ, srsjkmc, "10.0")
    SCSJK = SCSJK.getOutput(0)
elif SCSJKLX == "GDB":
    SCSJK = arcpy.CreateFileGDB_management(SCSJKLJ, srsjkmc, "10.0")
    SCSJK = SCSJK.getOutput(0)
arcpy.env.workspace = SRSJK
datasets = arcpy.ListDatasets()
print("正在复制数据集")
for dataset in datasets:
    srsjjlj = os.path.join(SRSJK, dataset)
    scsjjlj = os.path.join(SCSJK, dataset)
    print("正在复制数据集:" + dataset)
    arcpy.Copy_management(srsjjlj,scsjjlj)
print("数据集复制完成")
featue_classes = arcpy.ListFeatureClasses()
print("正在复制数据集外的要素类")
for featue_class in featue_classes:
    srysllj = os.path.join(SRSJK, featue_class)
    scyslj = os.path.join(SCSJK, featue_class)
    print("正在复制数据集外要素类:" + featue_class)
    arcpy.CopyFeatures_management(srysllj, scyslj)
print("数据集外要素类复制完成")
print("正在复制数据库表")
tables = arcpy.ListTables()
for table in tables:
    print("正在复制数据库表:" + table)
    scblj = os.path.join(SCSJK, table)
    arcpy.Copy_management(table, scblj)
shange = arcpy.ListRasters()
print("数据库表复制完成")
print("正在复制数据库栅格")
for sh in shange:
    print("正在复制数据库栅格:" + sh)
    scsglj = os.path.join(SCSJK, sh)
    arcpy.Copy_management(sh, scsglj)
print("数据库栅格复制完成")

更多推荐