摘要
游标是一个数据访问对象,用于遍历表中的各行上或在表中插入新行。 游标有三种形式:搜索、插入或更新。 游标通常用于读取和更新属性。
旧版本:
游标函数和 Cursor 对象仅供在旧版脚本中使用。 编写或更新脚本时,建议您使用 arcpy.da 模块中的游标。 arcpy.da 游标提供了改进的性能和功能,并支持更新的字段类型和令牌。
方法概述
方法 | 说明 |
deleteRow (row) | 删除数据库中的某一行。将删除与游标当前所在位置相对应的行。 |
insertRow (row) | 向数据库中插入新行。 |
newRow () | 创建空 Row 对象。 |
next () | 返回当前索引中的下一个对象。 |
reset () | 将当前枚举索引(由 next 方法使用)设置回第一个元素。 |
updateRow (row) | updateRow 方法可用于对更新游标当前所在的行进行更新。 |
方法
deleteRow (row)
参数 | 说明 | 数据类型 |
row | 要删除的行。 | Row |
insertRow (row)
参数 | 说明 | 数据类型 |
row | 要插入的行。 | Row |
newRow ()
数据类型 | 说明 |
Row | 新的空 Row 对象。 |
next ()
数据类型 | 说明 |
Object | 当前索引中的下一个对象。 |
reset ()
updateRow (row)
参数 | 说明 | 数据类型 |
row | 用于更新游标当前所在位置的行。 | Row |
代码示例
使用搜索游标查看行中的字段值。
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
使用更新游标更改行中的字段值。
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
使用插入游标在表中创建行。
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