I'm trying to write a script that allows me to list .mxd files in a folder and then list the layers in each map document, however, I keep getting this error:
Traceback (most recent call last): File
"C:\Python27\ArcGIS10.1\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py",
line 326, in RunScript
exec codeObject in main.dict File "C:\Users\Daimon Nurse\Desktop\DFMPROJECT\Scripts\editmapdocument8.py", line 9, inlyr = arcpy.mapping.ListLayers(file) 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 1499, 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 822,
in listLayers
layers = self.layers File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 682,
in layers
for frame in reversed(self.dataFrames): File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 694,
in dataFrames
return map(convertArcObjectToPythonObject, self.pageLayout.dataFrames) File "C:\Program Files
(x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 678,
in pageLayout
return convertArcObjectToPythonObject(self._mxd._arc_object.pageLayout)
AttributeError: 'unicode' object has no attribute '_arc_object'
This is the code I am using :
import arcpy
import os
PATH2 = r"C:\Users\Daimon Nurse\Desktop\DFMPROJECT"
arcpy.env.workspace = PATH2
arcpy.env.overwriteOutput=True
for file in arcpy.ListFiles("*.mxd"):
lyr = arcpy.mapping.ListLayers(file)
print file
Best Answer
Try converting "file" to a full pathname, then opening the doc with mapping.MapDocument, like this: