Cursor (arcpy)

Резюме

Курсор – это объект доступа к данным, который может использоваться как для итерации по набору строк в таблице, так и для вставки новых строк в таблицу. Курсоры могут быть трех форм: поиска, вставки или обновления. Как правило, курсоры используются для считывания и обновления атрибутов.

Обзор метода

МетодОбъяснение
deleteRow (row)

Удаляет строку в базе данных. Строка, соответствующая текущему положению курсора, будет удалена.

insertRow (row)

Вставляет новую строку в базу данных.

newRow ()

Создает пустой строковый объект.

next ()

Возвращает следующий объект по текущему индексу.

reset ()

Устанавливает текущий индекс перечисления (по методу next) обратно на первый элемент.

updateRow (row)

Метод updateRow может использоваться для обновления строки в текущем положении курсора обновления.

Методы

deleteRow (row)
ПараметрОбъяснениеТип данных
row

Удаляемая строка.

Row
insertRow (row)
ПараметрОбъяснениеТип данных
row

Вставляемая строка.

Row
newRow ()
Возвращено значение
Тип данныхОбъяснение
Row

Новый пустой строковый объект.

next ()
Возвращено значение
Тип данныхОбъяснение
Object

Следующий объект по текущему индексу.

reset ()
updateRow (row)
ПараметрОбъяснениеТип данных
row

Строка используется для обновления текущего положения курсора.

Row

Пример кода

Пример курсора 1

Использование курсора поиска для просмотра значений полей в строке.

import arcpy
from arcpy import env

# Set the workspace
#
env.workspace = "D:/St_Johns/data.gdb"

# Create the search cursor
#
cur = arcpy.SearchCursor("roads", '"TYPE" <> 4')

# Iterate through the rows in the cursor
#
for row in cur:
    print "Name: %s,  CFCC code: %s" % (row.NAME, row.CFCC)

del cur, row
Пример курсора 2

Использование курсора обновления для изменения значений полей в строке.

import arcpy
from arcpy import env
# Set the workspace
#
env.workspace = "D:/St_Johns/data.gdb"

# Create the update cursor
#
cur = 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 cur:
    row.BUFFER_DIST = row.TYPE * 100
    cur.updateRow(row)

# Delete cursor and row objects
#
del cur, row
Пример курсора 3

Использование курсора вставки для создания новых строк в таблице.

import arcpy
import time 

# Create insert cursor for table 
# 
cur = arcpy.InsertCursor("D:/St_Johns/data.gdb/roads_maint") 
x = 1000 

# Create 25 new rows. Set default values on distance and CFCC code 
# 
while x <= 1025: 
    row = cur.newRow() 
    row.rowid = x 
    row.distance = 100
    row.CFCC = "A10" 
    row.LastInsp = time.ctime() 
    cur.insertRow(row) 
    x += 1

# Delete cursor and row objects
#
del cur, row

Связанные темы

9/10/2013