python/arcpy提取shp文件属性表中的字段值

通过arcpy.SearchCursor函数获取shp文件属性表中的字段值。SearchCursor 用于建立从要素类或表中返回的记录的只读访问权限。将返回一组迭代元组。元组中值的顺序与 field_names 参数指定的字段顺序相符。SearchCursor函数的语法为:

SearchCursor (in_table, field_names, {where_clause}, {spatial_reference}, {explode_to_points}, {sql_clause})
参数 说明 数据类型
in_table 要素类、图层、表或表视图 String
field_names
[field_names,…]
字段名称列表(或组)。对于单个字段,可以使用一个字符串,而不使用字符串列表。

如果要访问输入表中的所有字段(栅格和 BLOB 字段除外),可以使用星号 (*) 代替字段列表。但是,为了获得较快的性能和可靠的字段顺序,建议您将字段列表限制在实际需要的字段。

不支持栅格字段。
String
where_clause 用于限制所返回的记录的可选表达式。有关 WHERE 子句和 SQL 语句的详细信息,请参阅构建查询表达式。

(默认值为 None)
String
spatial_reference 要素类的空间参考。可以使用 SpatialReference 对象或等效字符串来指定。

(默认值为 None)
SpatialReference
sql_clause 以列表或组的形式列出的可选 SQL 前缀和后缀子句对。

SQL 前缀子句支持 None、DISTINCT 和 TOP。SQL 前缀子句支持 None、ORDER BY 和 GROUP BY。

SQL 前缀子句位于第一个位置,将被插入到 SELECT 关键字和 SELECT COLUMN LIST 之间。SQL 前缀子句最常用于 DISTINCT 或 ALL 等子句。

SQL 后缀子句位于第二个位置,将追加到 SELECT 语句的 where 子句之后。SQL 后缀子句最常用于 ORDER BY 等子句。

(默认值为 (None, None))
tuple

例如获取test.shp文件中的“FID”,“POINT_X”和“POINT_Y”三个字段的值并输出。

import arcpy

shppath = r"F:\\pythonpro\\test\\test.shp"

#提取shp文件中的'FID', 'POINT_X', 'POINT_Y'字段
shpfields = ['FID', 'POINT_X', 'POINT_Y']
shp_FID = []
shp_X = []
shp_Y = []

shprows = arcpy.SearchCursor(shppath, shpfields)
while True:    
    shprow = shprows.next()
    if not shprow:
        break
    shp_FID.append(shprow.FID)
    shp_X.append(shprow.POINT_X)
    shp_Y.append(shprow.POINT_Y)

for i in range(0, len(shp_FID)):
    print shp_FID[i], shp_X[i], shp_Y[i]

test.shp文件中的“FID”,“POINT_X”和“POINT_Y”三个字段的值:
在这里插入图片描述
输出的结果:
在这里插入图片描述欢迎大家批评指正。

发布了35 篇原创文章 · 获赞 37 · 访问量 4268

猜你喜欢

转载自blog.csdn.net/L_J_Kin/article/details/103745034