批量合并mdb文件

2018-07-26  本文已影响0人  子页

环境

Arcgis 10.1
python 2.7

问题

在制图过程中,一个图幅的地图数据存放在一个mdb数据库中,当每个图幅都处理完了,需要多个图幅的数据存放到一个数据库中,如何写一个批处理程序自动合并多个mdb。需要合并点、线、面、注记、属性表以及数据集中的点、线、面、注记、属性表

脚本

import sys
#reload语句在arcgis10.1中会导致arcmap崩溃
#reload(sys)
#sys.setdefaultencoding("utf-8")
import arcpy
import string

try:
    #路径用英文,别用汉字
    #要批量合并的mdb数据库文件存放的路径
    workspace = 'C:\input'
    #目标数据库文件所在的路径,目标数据库中的文件格式和要批量处理的数据库格式一致。
    outdb = 'C:\output\k51.mdb'
    arcpy.env.workspace = workspace
    files = arcpy.ListFiles("*.*db")
    arcpy.env.workspace = outdb
    fcs = arcpy.ListFeatureClasses()
    fcs = fcs + arcpy.ListTables()
    dss = arcpy.ListDatasets()
    for File in files:
        print File
        for fc in fcs:
            arcpy.Append_management(workspace + "\\" + File + "\\" + fc, outdb + "\\" + fc)
        for ds in dss:
            fcs1 = arcpy.ListFeatureClasses(feature_dataset = ds)
            for fc1 in fcs1:
                arcpy.Append_management(workspace + "\\" + File + "\\" + ds + "\\" + fc1, outdb + "\\" + ds + "\\" + fc1)


except arcpy.ExecuteError:
    print arcpy.GetMessages()

这段代码也是会gdb格式的数据库

使用

在arcmap中打开python窗口
将workspace 和outdb 修改成跟你自己的文件所在的路径。
将代码拷贝到python窗口里,回车,程序开始执行。

参考

在ArcGIS中使用ArcPython批量合并多个文件型地理数据库(.gdb)或个人地理数据库(.mdb)

上一篇下一篇

猜你喜欢

热点阅读