环境
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窗口里,回车,程序开始执行。
参考