¿Alguien puede ayudarme a entender lo que hacen las últimas 2 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 por lo que el del row
y del cursor
están destinados a hacer.
Stephen ha escrito una buena respuesta, sin embargo, no ha aclarado por qué es importante liberar (eliminar) objetos de fila / cursor. Un cursor abierto o un objeto de fila deja un bloqueo en la clase de entidad que causará problemas al intentar realizar cambios en la clase de entidad hasta que finalice la sesión que contiene los bloqueos, generalmente al cerrar la aplicación, pero puede ser tan grave como reiniciar su computadora . Como solo tiene un campo, no necesita ser una lista (solo 'estado', no ['estado'], pero eso no lo detendrá; sin embargo, sobrescribirá cualquier estado que no sea 'AK' con "AK" como Dijo Stephen.
—
Michael Stimson
Gracias por su aporte, todo lo que dijeron ustedes tenía mucho sentido. * Tenga en cuenta que el archivo de forma de aeropuertos es de aeropuertos en AK, estaba completando registros que no tenían valor para STATE.
—
Gabe
State
valor de cualquier aeropuerto que no estaba anteriormente en Alaska