我有一个代码我正在使用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
任何想法可能是什么问题?
答案 0 :(得分:1)
我认为问题可能出在你的比较中
if item == lyr:

请注意,arcpy.mapping.ListLayers返回图层对象列表,而不是图层名称列表。
尝试将比较更改为
if item.name == lyr:

祝你好运!
汤姆