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

# 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
Пример курсора 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
Пример курсора 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 xrange(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

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

5/10/2014