arcpy.da.SearchCursor和arcpy.SearchCursor的随记

arcpy.da.SearchCursor和arcpy.SearchCursor的区别

两者的都可以实现查询及遍历

arcpy.da.SearchCursor:

  with arcpy.da.SearchCursor("GXB","*",sql_clause=(None,"Order by hbm")) as cursor:

  with arcpy.da.SearchCursor("Schools.shp",("Facility","Name")) as cursor:

字段部分不能为空,全部字段填星号*,部分字段用("",""),可排序

查询的结果是一个元组,无表头,只能用row[int]进行引用,试了元组的长度len()不得行,但排序sorted()正常

  from operator import itemgetter 

  for row in sorted(cursor,key=itemgetter(5)):

 

arcpy.SearchCursor:

  cursor=arcpy.SearchCursor("GXB",sort_fields="hbm A")

  rows = arcpy.SearchCursor("c:/data/counties.shp",
    fields="NAME; STATE_NAME; POP2000",
    sort_fields="STATE_NAME A; POP2000 D")

字段可空,部分可用 fields=关键字

查询结果是一张表,有相应的字段名,可用row.getValue("SFGYZ")进行引用。但要手动删除变量(锁),否则运行不可控。

 

arcpy.da.SearchCursor的速度更快,为了提升速度,还可设置令牌。

注:运行前最好都检查要使用的数据是否处于关闭状态,或数据库是否正常关闭,否则结果会出现偏差或数据不全。

posted @ 2023-05-10 10:36  生活不该得过且过  阅读(294)  评论(0编辑  收藏  举报