|
本帖最后由 里昂 于 2023-3-15 18:15 编辑
大家应该都开始尝试ARCGIS PRO了,因为PRO不再支持MDB格式的数据库,所以日常使用时候会遇到数据库转换的问题,给大家分享一个转换脚本,可以将目录下的MDB数据库批量转换为GDB格式
看见有版友说转换代码里面不包括表和注记什么的,主要是我工作中用不到就没写,看哪位勤快的好心人能给补充完整,实在有需求等不及的就留言我抽空完善吧
- # -*- coding: utf-8 -*-
- import os
- import arcpy
- path = r"".decode("utf-8")
- for root,a,files in os.walk(path):
- for each in files:
- if each.endswith(".mdb"):
- print(u"转换%s..."%each)
- mdb = os.path.join(root,each)
- gdb = mdb.replace(".mdb",".gdb")
- arcpy.env.overwriteOutput = True
- arcpy.env.workspace = mdb
- if os.path.exists(gdb):
- pass
- # os.removedirs(gdb)
- else:
- arcpy.CreateFileGDB_management(os.path.split(gdb)[0],os.path.split(gdb)[1])
- for dataset in arcpy.ListDatasets():
- print (dataset)
- if dataset != "":
- arcpy.CreateFeatureDataset_management(gdb, dataset)
- for featureclass in arcpy.ListFeatureClasses(None, None, dataset):
- o_featureclass = featureclass
- print (dataset + os.sep + featureclass)
- if featureclass[0].isdigit():
- o_featureclass = u"T" + featureclass
- arcpy.FeatureClassToFeatureClass_conversion(mdb+os.sep+dataset+os.sep+featureclass, gdb + os.sep + dataset,o_featureclass)
- else:
- for featureclass in arcpy.ListFeatureClasses(None,None,dataset):
- o_featureclass = ""
- print (dataset+os.sep+featureclass)
- if featureclass[0].isdigit():
- o_featureclass = u"T"+featureclass
- arcpy.env.workspace = os.path.join(mdb,dataset)
- arcpy.FeatureClassToFeatureClass_conversion(featureclass, gdb, o_featureclass)
- arcpy.env.workspace = mdb
- for featureclass in arcpy.ListFeatureClasses():
- print (featureclass)
- arcpy.FeatureClassToFeatureClass_conversion(featureclass,gdb,featureclass)
复制代码
|
评分
-
查看全部评分
|