import arcpy from arcpy import env from arcpy import mapping workspace = arcpy.env.workspace = "C:/GIS/MAPBOOK/Proposed Zoning Book" arcpy.env.overwriteOutput = True mxdList = arcpy.ListFiles("*.mxd") for mxd in mxdList: mxd = workspace + "//" + mxd for lyr in arcpy.mapping.ListLayers(mxd): if lyr.name == "PROPOSED ZONING": lyr.replaceDataSource("C:/Users/t***a/AppData/Roaming/ESRI/Desktop10.1/ArcCatalog/DSD15_SQLEXPRESS.gds/DSD/DSD.DBO.MUNICIPALITY", "SHAPEFILE_WORKSPACE", "DSD.DBO.FUTURE_LAND_USE_ZONING") for lyr in arcpy.mapping.ListLayers(mxd): if lyr.name == "CITY LIMITS": lyr.replaceDataSource("C:/Users/t***a/AppData/Roaming/ESRI/Desktop10.1/ArcCatalog/DSD15_SQLEXPRESS.gds/TonyOneWay/TonyOneWay.DBO.Canyon_Features", "SHAPEFILE_WORKSPACE", "TonyOneWay.DBO.City_Limits") print "Successfully updated data sources" mxd.save()
Traceback (most recent call last): File "C:\GIS\Python Scripts\Change Data Source MXD 2.py", line 13, in <module> for lyr in arcpy.mapping.ListLayers(mxd): File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\utils.py", line 181, in fn_ return fn(*args, **kw) File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\mapping.py", line 1500, in ListLayers result = mixins.MapDocumentMixin(map_document_or_layer).listLayers(wildcard, data_frame) File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 823, in listLayers layers = self.layers File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 683, in layers for frame in reversed(self.dataFrames): File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 695, in dataFrames return map(convertArcObjectToPythonObject, self.pageLayout.dataFrames) File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 679, in pageLayout return convertArcObjectToPythonObject(self._mxd._arc_object.pageLayout) AttributeError: 'unicode' object has no attribute '_arc_object'
for lyr in arcpy.mapping.ListLayers(mxd): if lyr.name == "PROPOSED ZONING": lyr.replaceDataSource("C:/Users/t***a/AppData/Roaming/ESRI/Desktop10.1/ArcCatalog/DSD15_SQLEXPRESS.gds/DSD/DSD.DBO.MUNICIPALITY", "SHAPEFILE_WORKSPACE", "DSD.DBO.FUTURE_LAND_USE_ZONING") for lyr in arcpy.mapping.ListLayers(mxd): if lyr.name == "CITY LIMITS": lyr.replaceDataSource("C:/Users/t***a/AppData/Roaming/ESRI/Desktop10.1/ArcCatalog/DSD15_SQLEXPRESS.gds/TonyOneWay/TonyOneWay.DBO.Canyon_Features", "SHAPEFILE_WORKSPACE", "TonyOneWay.DBO.City_Limits") print "Successfully updated data sources"
for lyr in arcpy.mapping.ListLayers(mxd)[0]: if lyr.name == "PROPOSED ZONING": lyr.replaceDataSource("C:/Users/t***a/AppData/Roaming/ESRI/Desktop10.1/ArcCatalog/DSD15_SQLEXPRESS.gds/DSD/DSD.DBO.MUNICIPALITY", "SHAPEFILE_WORKSPACE", "DSD.DBO.FUTURE_LAND_USE_ZONING") for lyr in arcpy.mapping.ListLayers(mxd)[0]: if lyr.name == "CITY LIMITS": lyr.replaceDataSource("C:/Users/t***a/AppData/Roaming/ESRI/Desktop10.1/ArcCatalog/DSD15_SQLEXPRESS.gds/TonyOneWay/TonyOneWay.DBO.Canyon_Features", "SHAPEFILE_WORKSPACE", "TonyOneWay.DBO.City_Limits") print "Successfully updated data sources"
import arcpy from arcpy import env from arcpy import mapping workspace = arcpy.env.workspace = "C:/GIS/MAPBOOK/Proposed Zoning Book" arcpy.env.overwriteOutput = True mxdList = arcpy.ListFiles("*.mxd") for mxd in mxdList: mxd = workspace + "//" + mxd for lyr in arcpy.mapping.ListLayers(mxd[0]: if lyr.supports("DATASOURCE"): if lyr.name == "PROPOSED ZONING": lyr.replaceDataSource("C:/Users/t**a/AppData/Roaming/ESRI/Desktop10.1/ArcCatalog/DSD15_SQLEXPRESS.gds/DSD/DSD.DBO.MUNICIPALITY", "SHAPEFILE_WORKSPACE", "DSD.DBO.FUTURE_LAND_USE_ZONING") for lyr in arcpy.mapping.ListLayers(mxd)[0]: if lyr.supports("DATASOURCE"): if lyr.name == "CITY LIMITS": lyr.replaceDataSource("C:/Users/t**a/AppData/Roaming/ESRI/Desktop10.1/ArcCatalog/DSD15_SQLEXPRESS.gds/TonyOneWay/TonyOneWay.DBO.Canyon_Features", "SHAPEFILE_WORKSPACE", "TonyOneWay.DBO.City_Limits") print "Successfully updated data sources" mxd.save()
for lyr in arcpy.mapping.ListLayers(mxd[0]:
for lyr in arcpy.mapping.ListLayers(mxd)[0]:
for lyr in arcpy.mapping.ListLayers(mxd)[0]:
mxdList = arcpy.ListFiles("*.mxd") for mxd in mxdList: #<-- you already have the mxd set here mxd = workspace + "//" + mxd #<-- now you are changing it right after you start the loop? why? for lyr in arcpy.mapping.ListLayers(mxd[0]): #<--mxd is likely incorrect now
mxdList = arcpy.ListFiles("*.mxd") for mxd in mxdList: #<-- you already have the mxd set here, just keep it like that for lyr in arcpy.mapping.ListLayers(mxd[0]): #<--mxd should now be fine . . .
C:/GIS/MAPBOOK/Proposed Zoning Book//Proposed_ZoningMapBook_Page_1.mxd is being processed Traceback (most recent call last): File "C:\GIS\Python Scripts\Change Data Source MXD 2.py", line 14, in <module> for lyr in arcpy.mapping.ListLayers(mxd)[0]: File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\utils.py", line 181, in fn_ return fn(*args, **kw) File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\mapping.py", line 1500, in ListLayers result = mixins.MapDocumentMixin(map_document_or_layer).listLayers(wildcard, data_frame) File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 823, in listLayers layers = self.layers File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 683, in layers for frame in reversed(self.dataFrames): File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 695, in dataFrames return map(convertArcObjectToPythonObject, self.pageLayout.dataFrames) File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 679, in pageLayout return convertArcObjectToPythonObject(self._mxd._arc_object.pageLayout) AttributeError: 'unicode' object has no attribute '_arc_object'
Traceback (most recent call last): File "C:\GIS\Python Scripts\Change Data Source MXD 2.py", line 12, in <module> for lyr in arcpy.mapping.ListLayers(mxd)[0]: File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\utils.py", line 181, in fn_ return fn(*args, **kw) File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\mapping.py", line 1500, in ListLayers result = mixins.MapDocumentMixin(map_document_or_layer).listLayers(wildcard, data_frame) File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 823, in listLayers layers = self.layers File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 683, in layers for frame in reversed(self.dataFrames): File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 695, in dataFrames return map(convertArcObjectToPythonObject, self.pageLayout.dataFrames) File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 679, in pageLayout return convertArcObjectToPythonObject(self._mxd._arc_object.pageLayout) AttributeError: 'unicode' object has no attribute '_arc_object'
import arcpy from arcpy import env from arcpy import mapping workspace = arcpy.env.workspace = "C:\GIS\MAPBOOK\Proposed Zoning Book" arcpy.env.overwriteOutput = True mxdList = arcpy.ListFiles("*.mxd") for mxd in mxdList: mxd = workspace + "//" + mxd print mxd + " is being processed" mxd = arcpy.mapping.MapDocument(mxd) mxd.findAndReplaceWorkspacePaths(r"C:\Documents and Settings\talmeida\Application Data\ESRI\ArcCatalog\DSDccarcsde.sde",r"C:\Users\talmeida\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DBO.DSD.VECTOR.sde") for lyr in arcpy.mapping.ListLayers(mxd)[0]: if lyr.supports("DATASOURCE"): if lyr.name == "PROPOSED ZONING": lyr.replaceDataSource(r"C:\Users\talmeida\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DSD15_SQLEXPRESS.gds\DSD\DSD.DBO.MUNICIPALITY", "FILEGDB_WORKSPACE", "DSD.DBO.FUTURE_LAND_USE_ZONING") for lyr in arcpy.mapping.ListLayers(mxd) [0]: if lyr.supports("DATASOURCE"): if lyr.name == "CITY LIMITS": lyr.replaceDataSource(r"C:\Users\talmeida\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\DSD15_SQLEXPRESS.gds\TonyOneWay\TonyOneWay.DBO.Canyon_Features", "SHAPEFILE_WORKSPACE", "TonyOneWay.DBO.City_Limits") print "Successfully updated data sources" mxd.save()
C:\GIS\MAPBOOK\Proposed Zoning Book//Proposed_ZoningMapBook_Page_1.mxd is being processed Traceback (most recent call last): File "C:\GIS\Python Scripts\Change Data Source MXD 2.py", line 14, in <module> for lyr in arcpy.mapping.ListLayers(mxd)[0]: File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\utils.py", line 181, in fn_ return fn(*args, **kw) File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\mapping.py", line 1500, in ListLayers result = mixins.MapDocumentMixin(map_document_or_layer).listLayers(wildcard, data_frame) File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 823, in listLayers layers = self.layers File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 683, in layers for frame in reversed(self.dataFrames): File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 695, in dataFrames return map(convertArcObjectToPythonObject, self.pageLayout.dataFrames) File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 679, in pageLayout return convertArcObjectToPythonObject(self._mxd._arc_object.pageLayout) AttributeError: 'unicode' object has no attribute '_arc_object'