python代码对ArcGIS中MDB与GDB一键互转的实现方法
·
本文为另一篇文章“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("数据库栅格复制完成")
更多推荐


所有评论(0)