UpdateCursor

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

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

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

Обсуждение

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

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

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

Использование 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 on where clauses and SQL statements, see SQL reference for query expressions used in ArcGIS.

String
spatial_reference

Coordinates are specified in the spatial_reference 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 descending, using the form "field1 A;field2 B".

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

Объект Cursor, который может распределять объекты Row.

Пример кода

Пример UpdateCursor

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

import arcpy

# Create update cursor for 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

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