将列表传递给另一个函数

2024-05-29 10:07:14 发布

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

我使用python模块https://gis.stackexchange.com/a/5943/16793导出SDE数据库中的要素类列表。在

 import os, csv, arcpy, arcplus
>>> fcs = arcplus.listAllFeatureClasses("Database Connections\\Connection to oracle.sde\\BASINS.ACF")

输出是一个列表:

^{pr2}$

为了将此列表传递给另一个函数,我为列表中的每个元素添加了一个字符串:

^{3}$

看起来像:

print mylist[0]
Database Connections\Connection to oracle.sde\BASINS.ACF_FL_SUB

我想把这个列表传递给另一个函数arcpy.ListFields(数据集),它将返回每个要素类的字段:

fn = [f.name for f in arcpy.ListFields(mylist[0])]

>>> print fn
[u'OBJECTID', u'HUC', u'BASIN', u'NAME', u'ACRES', u'SHAPE', u'SHAPE.AREA', u'SHAPE.LEN']

我想知道如何将fcs中的列表传递给功能arcpy.ListFields并将结果写入csv文件,但所需的循环结构确实给我带来了麻烦。我在这方面是个新手,Python文档让我大开眼界。任何建议都会有帮助。在

Uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu乌尤

@Tony你的解决方案很有效。尽管我尝试在较大的geodatabase上使用listAllFeatureClasses,但是我没有足够的权限读取某些属性,这会导致IOError:Database Connections\Connection to甲骨文.sde\土地,土地\LAND_POINTS不存在。我正在研究如何处理这个问题,并继续讨论列表中的下一个要素类。也许试试/继续?在


Tags: csvto列表plusconnectionconnectionsdatabase要素
1条回答
网友
1楼 · 发布于 2024-05-29 10:07:14

打电话给arcpy.ListFields对于列表中的每个项目:

 fns = [[f.name for f in arcpy.ListFields( list_entry )] for list_entry in mylist]

这将给您一个列表列表,其中fns[0]是entry mylist[0]的函数

更容易使用的是字典:

^{pr2}$

使用示例中的数据:

^{3}$

相关问题 更多 >

    热门问题