arcpy.listFeatureClass类()用于多个工作区

2024-10-01 09:37:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用arcpy.listFeatureClass类()用于同一脚本中的多个工作区。通过查看其他示例脚本,我认为可以简单地将工作空间分配给变量,然后在其中使用该变量arcpy.listFeatureClass类()

例如:

workspace = "C:\\location\\"
fcs = arcpy.ListFeatureClasses(workspace)
for fc in fcs:
    print fc

但这会导致一个错误:

^{pr2}$

我得到了arcpy.listFeatureClass类()在我只对默认工作空间中的要素类感兴趣时工作,例如:

arcpy.env.workspace = "C:\\location\\"
fcs = arcpy.ListFeatureClasses()

但我对脚本的每个步骤都有兴趣查看不同的文件夹,我不想为每个步骤重置默认工作区。在

此外,为什么我看到第一个例子在其他人的脚本中使用(包括我的GIS编程教授的那些脚本),它们似乎在那些情况下都可以工作,但是我得到了一个错误。在

感谢您提供的任何帮助或建议。在


Tags: in脚本示例for错误空间步骤location
1条回答
网友
1楼 · 发布于 2024-10-01 09:37:47

你的第一个例子肯定行不通。arcpy.ListFeatureClasses()有3个可选参数,而工作区不是它们的一部分,必须事先定义,请参阅函数的Help page以了解确切的语法。在

重置当前工作区并不是什么大事。取决于您使用的工作区类型(文件夹、地理数据库、SDE、各种…)以及它们的结构(它们是否都在同一位置?您是否有特定文件夹/数据库的列表?)首先列出它们,然后在工作空间中迭代以列出它们的要素类:

# 1. List workspaces

listWS = [r"C:\DATA", r"D:\PROJECT\geodatabase.gdb", r"D:\whatever.mdb"]
# use this if the workspaces are in various locations

# or: 

arcpy.env.workspace = r"C:\DATA"
listWS = arcpy.ListWorkspaces()
# use this if the workspaces are in the same location

# 2. Iterate over the workspaces and list their feature classes

for ws is listWS:
 arcpy.env.workspace = ws
 listFC = arcpy.ListFeatureClasses()
 for fc in listFC:
  # do something

请参见arcpy.ListWorkspaces()Help page,以了解如何将列表限制为特定类型的工作区或使用通配符。在

相关问题 更多 >