免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 3052|回复: 20
收起左侧

[二次开发] 响应号召学雷锋,分享个MDB转GDB的脚本

  [复制链接]

1

主题

9174

铜板

1

好友

至尊VIP

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
345
发表于 2023-3-2 16:02 | 显示全部楼层 |阅读模式
本帖最后由 里昂 于 2023-3-15 18:15 编辑

大家应该都开始尝试ARCGIS PRO了,因为PRO不再支持MDB格式的数据库,所以日常使用时候会遇到数据库转换的问题,给大家分享一个转换脚本,可以将目录下的MDB数据库批量转换为GDB格式
看见有版友说转换代码里面不包括表和注记什么的,主要是我工作中用不到就没写,看哪位勤快的好心人能给补充完整,实在有需求等不及的就留言我抽空完善吧
  1. # -*- coding: utf-8 -*-


  2. import os
  3. import arcpy

  4. path = r"".decode("utf-8")
  5. for root,a,files in os.walk(path):
  6.     for each in files:
  7.         if each.endswith(".mdb"):
  8.             print(u"转换%s..."%each)
  9.             mdb = os.path.join(root,each)
  10.             gdb = mdb.replace(".mdb",".gdb")
  11.             arcpy.env.overwriteOutput = True
  12.             arcpy.env.workspace = mdb
  13.             if os.path.exists(gdb):
  14.                 pass
  15.                 # os.removedirs(gdb)
  16.             else:
  17.                 arcpy.CreateFileGDB_management(os.path.split(gdb)[0],os.path.split(gdb)[1])
  18.             for dataset in arcpy.ListDatasets():

  19.                 print (dataset)
  20.                 if dataset != "":
  21.                     arcpy.CreateFeatureDataset_management(gdb, dataset)
  22.                     for featureclass in arcpy.ListFeatureClasses(None, None, dataset):
  23.                         o_featureclass = featureclass
  24.                         print (dataset + os.sep + featureclass)
  25.                         if featureclass[0].isdigit():
  26.                             o_featureclass = u"T" + featureclass
  27.                         arcpy.FeatureClassToFeatureClass_conversion(mdb+os.sep+dataset+os.sep+featureclass, gdb + os.sep + dataset,o_featureclass)
  28.                 else:
  29.                     for featureclass in arcpy.ListFeatureClasses(None,None,dataset):
  30.                         o_featureclass = ""
  31.                         print (dataset+os.sep+featureclass)
  32.                         if featureclass[0].isdigit():
  33.                             o_featureclass = u"T"+featureclass
  34.                         arcpy.env.workspace = os.path.join(mdb,dataset)
  35.                         arcpy.FeatureClassToFeatureClass_conversion(featureclass, gdb, o_featureclass)
  36.             arcpy.env.workspace = mdb
  37.             for featureclass in arcpy.ListFeatureClasses():
  38.                 print (featureclass)
  39.                 arcpy.FeatureClassToFeatureClass_conversion(featureclass,gdb,featureclass)
复制代码


评分

参与人数 1铜板 +2 收起 理由
yuhongv + 2 感谢分享!

查看全部评分

头像被屏蔽

141

主题

980万

铜板

3万

好友

管理员

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分
627184
发表于 2023-3-2 16:46 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

1

主题

9174

铜板

1

好友

至尊VIP

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
345
 楼主| 发表于 2023-3-2 16:51 | 显示全部楼层
path = r"这里填mdb路径".decode("utf-8")
回复 支持 反对

使用道具 举报

0

主题

289

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
15
发表于 2023-3-2 18:41 | 显示全部楼层
感谢分享
回复

使用道具 举报

26

主题

2万

铜板

104

好友

地信贵宾

Rank: 13Rank: 13Rank: 13Rank: 13

积分
474902

精华勋章宣传勋章爱心勋章优秀斑主地信元老灌水勋章荣誉会员勋章活跃勋章贡献勋章

QQ
发表于 2023-3-2 21:39 手机频道 | 显示全部楼层
共同学习
回复

使用道具 举报

21

主题

9万

铜板

83

好友

地信学员

开开心心每一天

Rank: 12Rank: 12Rank: 12

积分
12847
发表于 2023-3-2 22:12 | 显示全部楼层
谢谢楼主提供分享收藏了
回复 支持 反对

使用道具 举报

11

主题

4899

铜板

17

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
834
发表于 2023-3-3 08:04 | 显示全部楼层
感谢分享
回复

使用道具 举报

0

主题

3万

铜板

12

好友

地信专家组

Rank: 14Rank: 14Rank: 14Rank: 14

积分
2534

精华勋章爱心勋章冰雪节勋章童话节勋章

发表于 2023-3-3 09:09 | 显示全部楼层
感谢分享
回复

使用道具 举报

13

主题

6万

铜板

50

好友

资深会员

Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

积分
3563
发表于 2023-3-3 15:53 | 显示全部楼层
谢谢,我向你学习。
回复 支持 反对

使用道具 举报

28

主题

4万

铜板

0

好友

传奇会员

Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

积分
26816

宣传勋章爱心勋章组织勋章地信元老灌水勋章荣誉会员勋章活跃勋章地信专家组VIP勋章贡献勋章成就学员勋章

发表于 2023-3-4 18:41 | 显示全部楼层
好资料。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表