Cursor (arcpy)
Краткая информация
Курсор – это объект доступа к данным, который может использоваться как для итерации по набору строк в таблице, так и для вставки новых строк в таблицу. Курсоры могут быть трех форм: поиска, вставки или обновления. Как правило, курсоры используются для считывания и обновления атрибутов.
Обзор метода
Метод | Объяснение |
deleteRow (row) |
Удаляет строку в базе данных. Строка, соответствующая текущему положению курсора, будет удалена. |
insertRow (row) |
Вставляет новую строку в базу данных. |
newRow () |
Создает пустой строковый объект. |
next () |
Возвращает следующий объект по текущему индексу. |
reset () |
Устанавливает текущий индекс перечисления (по методу next) обратно на первый элемент. |
updateRow (row) |
Метод updateRow может использоваться для обновления строки в текущем положении курсора обновления. |
Методы
Параметр | Объяснение | Тип данных |
row |
Удаляемая строка. | Row |
Параметр | Объяснение | Тип данных |
row |
Вставляемая строка. | Row |
Тип данных | Объяснение |
Object |
Следующий объект по текущему индексу. |
Параметр | Объяснение | Тип данных |
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 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