描述
Cursor 是一种数据访问对象,可用于在表中迭代一组行或者向表中插入新行。游标有三种形式:搜索、插入或更新。游标通常用于读取和更新属性。
方法概述
方法 | 说明 |
deleteRow (row) | 删除数据库中的某一行。将删除与游标当前所在位置相对应的行。 |
insertRow (row) | 向数据库中插入新行。 |
newRow () | 创建空 Row 对象。 |
next () | 返回当前索引中的下一个对象。 |
reset () | 将当前枚举索引(由 next 方法使用)设置回第一个元素。 |
updateRow (row) | updateRow 方法可用于对更新游标当前所在的行进行更新。 |
方法
deleteRow (row)
参数 | 说明 | 数据类型 |
row | 要删除的行。 | Row |
insertRow (row)
参数 | 说明 | 数据类型 |
row | 要插入的行。 | Row |
next ()
返回值
数据类型 | 说明 |
Object | 当前索引中的下一个对象。 |
reset ()
updateRow (row)
参数 | 说明 | 数据类型 |
row | 用于更新游标当前所在位置的行。 | Row |
代码示例
Cursor 示例 1
使用搜索游标查看行中的字段值。
import arcpy
# Set the workspace
arcpy.env.workspace = "c:/base/data.gdb"
# Create the search cursor
cursor = arcpy.SearchCursor("roads", '"TYPE" <> 4')
# Iterate through the rows in the cursor
for row in cursor:
print("Name: {0}, CFCC code: {1}".format(row.NAME, row.CFCC))
del cursor, row
Cursor 示例 2
使用更新游标更改行中的字段值。
import arcpy
# Set the workspace
arcpy.env.workspace = "c:/base/data.gdb"
# Create the update cursor
cursor = arcpy.UpdateCursor("roads")
# Update the road buffer distance field based on road type.
# Road type is either 1,2,3,4 Distance is in meters.
for row in cursor:
row.setValue("BUFFER_DIST", row.getValue("TYPE") * 100)
cursor.updateRow(row)
# Delete cursor and row objects
del cursor, row
Cursor 示例 3
使用插入游标在表中新建行。
import datetime
import arcpy
# Create insert cursor for table
cursor = arcpy.InsertCursor("c:/base/data.gdb/roads_maint")
# Create 25 new rows. Set default values on distance and CFCC code
for i in range(1000, 1025):
row = cursor.newRow()
row.setValue('rowid', i)
row.setValue('distance', 100)
row.setValue('CFCC', 'A10')
row.setValue('LastInsp', datetime.datetime.now())
cursor.insertRow(row)
# Delete cursor and row objects
del cursor, row