8 votos

¿Por qué los objetos cursor/fila de ArcPy?

Puede alguien ayudarme a entender qué hacen las 2 últimas líneas de este código:

import arcpy
arcpy.env.workspace = "c:/esripress/python/data/exercise07"
arcpy.env.overwriteOutput = True

copy = arcpy.CopyFeatures_management("airports.shp","Results/airports.shp")
fc = "Results/airports.shp"

cursor = arcpy.da.UpdateCursor(fc, ["STATE"], ' "STATE" <> \'AK\'')
for row in cursor:
    row[0] = "AK"
    cursor.updateRow(row)
del row
del cursor

Entiendo que la función de bucle pasa por cada registro que no tiene un valor de 'AK' y le da a ese registro un valor de "AK". Pero lo que no entiendo es qué hace la función del row y del cursor están destinados a hacer.

13voto

Aaron Puntos 25882

Son reliquias de un estilo anterior de arcpy cursores. del row, cursor se utilizaron previamente para limpiar después de la ejecución de la secuencia de comandos mediante la eliminación de la row y cursor objetos. Ahora, el uso adecuado es envolver el cursor en un with que abre y cierra los objetos fila y cursor, como sigue:

import arcpy
arcpy.env.workspace = "c:/esripress/python/data/exercise07"
arcpy.env.overwriteOutput = True

copy = arcpy.CopyFeatures_management("airports.shp","Results/airports.shp")
fc = "Results/airports.shp"

with arcpy.da.UpdateCursor(fc, ["STATE"], ' "STATE" <> \'AK\'') as cursor:
    for row in cursor:
        row[0] = "AK"
        cursor.updateRow(row)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X