Cursor

Краткая информация

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

Прежние версии:

Функции курсора и объект 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

Пример кода

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

Связанные разделы