Arcpy使用指定的图层报告所有MXD

时间:2015-08-27 18:13:58

标签: python-2.7 arcpy

我有一个代码我正在使用python 2.7和arcpy插件。 用户将插入图层文件和根目录进行搜索。 代码将os.walk目录并找到每个.MXD文件。然后,它将在每个.MXD文件中搜索指定的.SHP文件。如果.MXD使用所请求的.SHP报告,它将记录该.MXD文件。

其中lyr = E1.get()并且是要搜索的.shp文件。

lyr = E1.get()    
for root, dirs, files in os.walk(path):
                for name in files:
                    basename, extension = os.path.splitext(name)
                    if extension == '.mxd':
                        fullPath = os.path.join(root,name)
                        mxd = arcpy.mapping.MapDocument(fullPath)
                        DataList = arcpy.mapping.ListLayers(mxd)
                        for item in DataList:
                            if item == lyr:
                                LOG_ME = mxd
                                l.info(LOG_ME)
                            else:
                                pass
                    else:
                        pass

日志文件在程序运行时创建,但从不填充任何数据。即使在我知道包含使用指定.SHP的.MXD的目录中,我也没有收到任何错误 我也试过了

for item in DataList:
    if lyr in item:
        log

if lyr in DataList:
    log

任何想法可能是什么问题?

1 个答案:

答案 0 :(得分:1)

我认为问题可能出在你的比较中



if item == lyr:




请注意,arcpy.mapping.ListLayers返回图层对象列表,而不是图层名称列表。

尝试将比较更改为



if item.name == lyr:




祝你好运!

汤姆