我有以下代码,由于某种原因,我无法返回并检查下一个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
答案 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。