UpdateCursor

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

Обновляет или удаляет строки атрибутивных значений класса объектов или таблицы.

Курсор устанавливает блокировку данных, которая остается до завершения работы скрипта или пока курсор не будет удален.

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

Эта функция была заменена на arcpy.da.UpdateCursor в ArcGIS 10.1 и остается для использования только в устаревших скриптах. Для обеспечения улучшенной производительности и функциональности, а также поддержки новых типов полей и токенов, воспользуйтесь arcpy.da.UpdateCursor.

Обсуждение

Курсоры обновления могут работать циклически с помощью цикла for или while, с использованием метода курсора next для перехода к следующей строке. При использовании на курсоре метода next, чтобы найти все строки в таблице, содержащей n строк, скрипт должен вызвать next N-ное количество раз. Вызов next после последней строки в полученном наборе результатов возвращает None, выступающий в качестве заполнителя.

Итерируйте строки, возвращаемые функцией UpdateCursor в цикле for.

import arcpy

fc = "c:/data/base.gdb/roads"
field1 = "field1"
field2 = "field2"

cursor = arcpy.UpdateCursor(fc)
for row in cursor:
    # field2 will be equal to field1 multiplied by 3.0
    row.setValue(field2, row.getValue(field1) * 3.0)
    cursor.updateRow(row)

Итерируйте строки, возвращаемые функцией UpdateCursor в цикле while.

import arcpy

fc = "c:/data/base.gdb/roads"
field1 = "field1"
field2 = "field2"

cursor = arcpy.UpdateCursor(fc)
row = cursor.next()
while row:
    # field2 will be equal to field1 multiplied by 3.0
    row.setValue(field2, row.getValue(field1) * 3.0)
    cursor.updateRow(row)
    row = cursor.next()

Синтаксис

UpdateCursor (dataset, {where_clause}, {spatial_reference}, {fields}, {sort_fields})
ПараметрОписаниеТип данных
dataset

The feature class or table containing the rows to be updated or deleted.

String
where_clause

An expression that limits the rows returned in the cursor. For more information about where clauses and SQL statements, see Introduction to query expressions.

String
spatial_reference

Coordinates are specified in the spatial_reference value provided and converted on the fly to the coordinate system of the dataset.

SpatialReference
fields

A semicolon-delimited string of fields to be included in the cursor. By default, all fields are included.

String
sort_fields

The fields used to sort the rows in the cursor.

Ascending and descending order for each field is denoted by A for ascending and D for descending, using the form "field1 A;field2 B".

String
Возвращаемое значение
Тип данныхОписание
Cursor

Объект Cursor, возвращающий объекты Row.

Пример кода

Пример UpdateCursor

Обновляет значения полей в классе объектов на основе значения другого поля.

import arcpy

# Create an update cursor for a feature class
rows = arcpy.UpdateCursor("c:/data/base.gdb/roads")

# Update the field used in buffer so the distance is based on the
# road type. Road type is either 1, 2, 3, or 4. Distance is in meters.
for row in rows:
    # Fields from the table can be dynamically accessed from the
    # row object. Here fields named BUFFER_DISTANCE and ROAD_TYPE
    # are used
    row.setValue("BUFFER_DISTANCE", row.getValue("ROAD_TYPE") * 100)
    rows.updateRow(row)

# Delete cursor and row objects to remove locks on the data.
del row
del rows

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