如果匹配文件名不存在,请重新启动循环

时间:2016-04-13 18:56:56

标签: python arcmap

我有以下代码,由于某种原因,我无法返回并检查下一个FC名称。如果我添加了“os.path.exists()”并且两个文件夹中都存在所有文件,那么此代码工作得很好。请指出问题所在。谢谢!

import arcpy
from arcpy import env
import os
arcpy.env.overwriteOutput = True
Match_FC=arcpy.GetParameterAsText(0)
Matched=Match_FC[-10:-1]
arcpy.AddMessage
env.workspace =arcpy.GetParameterAsText(1)
output=arcpy.GetParameterAsText(2)
fcList = arcpy.ListFeatureClasses()
for fc in fcList:
 if os.path.exists(fc==Matched):
    if fc[-10:-1]==Matched:
      arcpy.MakeFeatureLayer_management(fc, output,'','','')
 pass

2 个答案:

答案 0 :(得分:1)

os.path.exists()在文件系统上获取路径并检查它是否存在,然后用bool值提供它。

例如: 如果os.path.exists('/path/to/my/file')存在,则True会返回file

编辑:

我想你想这样做:

for fc in fcList:
    if fc == Matched:
        # do sth if matched
    else:
        # do sth if not matched. If you don't need else branch just delete it, without pass

答案 1 :(得分:0)

代码说os.path.exists(fc==Matched) - 注意==。表达式fc==Matched可以是True或False,因此您要检查True或False是否作为路径存在。

他们可能没有,这就是为什么你永远不会进入if。