我有一个脚本,它列出了SDE数据库中的要素类和字段。python模块arcplus创建一个要素类列表:
#Create list of feature classes on ArcSDE
mylist = arcplus.listAllFeatureClasses("Database Connections\\Connection to oracle.sde")
而函数arcpy.ListFields为每个要素类创建字段列表。在
^{pr2}$除非我对某个特定功能类的字段没有读取权限,否则这很有用。然后返回如下内容:
IOError: "Database Connections\Connection to oracle.sde\POLITICAL.LANDS\POLITICAL.DISTRICT_LANDS" does not exist
对于“IOError Some Feature Class does not exist”的每个实例,我想跳到我的\u列表中的下一个功能类。我还没有找到一个有效的try/except块。或者是完全不同的东西更合适?在
如果
arcpy.ListFields(...)
引发一个异常,它显然会扼杀整个列表/dict理解。你需要把它包装在一些能处理它的东西上,以返回你想要的东西。我想试试那么字典结构看起来像
^{pr2}$请注意,为了节省内存和执行时间,我将您的列表理解更改为生成器表达式。如果您有python>;2.7,也可以使用dict comprehension,如下所示:
相关问题 更多 >
编程相关推荐