我有大约50 mxd,其中包含我正在经历的所有破碎层并手动重置。
数据是从另一台计算机上移动的,并且文件夹结构已更改,因此它不仅仅是更改的简单过程(示例):
从“ F:\ Data \ Rivers.shp”到“ C:\ Data \ Rivers.shp”
它更像是:
将“ F:\ Data \ Rivers.shp”更改为C:\ Data \ Park \ Water \ Rivers.shp
等等,每个数据都在各自的子文件夹中(边界,蔬菜覆盖,道路等)。
我想制作一个脚本,每当我打开这些mxd之一时就可以重复运行,该脚本至少可以修复大多数我的mxd中发现的一些较常见的层,然后我可以手动修复其余的层。这样,我至少可以节省一些时间。
我一直在使用一些类似的东西:
import arcpy
mxd = arcpy.mapping.MapDocument("CURRENT")
for lyr in arcpy.mapping.ListLayers(mxd):
if lyr == "Rivers": #Should this be the layner name in TOC or FC name?
lyr.replaceDataSource(r"C:\Data\Park\Water", "SHAPEFILE_WORKSPACE", "Rivers")
然后的想法是要在上面为我的mxd中的其他常见层添加多个“替换”脚本。
但是,以上脚本甚至无法修复Rivers图层。
如何使它工作,并添加其他具有不同文件路径的要修复的层?