He comprobado las otras respuestas aquí y ninguna de las respuestas me funcionó ...
Es una cuestión "simple" de encontrar una capa por nombre en un mapa y cambiar su fuente de datos.
Aquí está mi guión:
#-- New Source
newSource = os.path.join(currDir, lyrZones + "_Dep" + dirNum + ".shp")
#-- Validation
if arcpy.Exists(newSource):
print "The new source exists!"
else:
print "Not found!"
#-- Find the layer and change its source
for lyr in arcpy.mapping.ListLayers(mxd):
if lyr.name == lyrZones:
print "Layer found!"
print layers.dataSource
print " Replacing source..."
lyr.replaceDataSource(currDir, "SHAPEFILE_WORKSPACE", newSource)
print lyr.dataSource
Lo ejecuto desde un script de Python fuera de ArcGIS.
Puede ver que la fuente existe, la capa se encuentra, puedo acceder a su fuente de datos imprimiéndola, pero lyr.replaceDataSource produce un error (error inesperado ... no ayuda mucho ...)
He estado trabajando en ello durante 4-5 horas y me faltan soluciones para probar. ¿Alguna idea de lo que puede causar el accidente?
D:\test
y vea si eso funciona.