2016-03-22 4 views
1

Я пытаюсь заменить значения в первых 4 строках таблицы атрибутов значениями строк из следующих 4 строк 5: 8 в таблице атрибутов с использованием дуги. da.UpdateCursor. Есть простой способ индексирования строк 1: 4 (все столбцы) и заменить значения из строк 5: 8.Заменить первые 4 строки значениями из строк 5: 8 arcpy

Вот мой код до сих пор:

targetFC = r"D:\ZOC\POLYPGDIS_MASTER_1.shp" 

dsc = arcpy.Describe(sourceFC) 
fields = dsc.fields 

# List all field names except the OID field 

fieldnames = [field.name for field in fields if field.name != dsc.OIDFieldName] 

with arcpy.da.UpdateCursor(targetFC, fieldnames) as cursor: 
for row in cursor: 
    row[1:4] = row[5:8] 
    cursor.updateRow(row) 

Благодаря

+0

Не могли бы вы привести пример того, что вы пытаетесь выполнить? – Borealis

ответ

1

Я думаю, что самый простой способ будет загружать данные в список. Обратите внимание, что если вы работаете с РСУБД, порядок строк не определен, поэтому это, вероятно, не сработает, если вы не отсортируете что-нибудь.

eight_rows = [] 
k = 0 
with arcpy.da.SearchCursor(targetFC, fieldnames) as rows: 
    for row in rows: 
     eight_rows.append(row) 
     k += 1 
     if k == 8: break 
k = 5 
with arcpy.da.UpdateCursor(targetFC, fieldnames) as rows: 
    for row in rows: 
     row = eight_rows[k] 
     k += 1 
     rows.updateRow(row) 
     if k == 8: break 

 Смежные вопросы

  • Нет связанных вопросов^_^