Odio molestarlos a todos con el mismo problema una y otra vez, pero me encuentro con un nuevo problema cada vez que hago un ligero cambio en el código. Todo lo que hice con el siguiente código fue reemplazar los nombres de campo para que coincidan con la clase de entidad original. Ahora no funciona. Me dio
<type 'exceptions.RuntimeError'>: ERROR 999999: Error executing function.
Failed to execute (Script).
Intenté agregar Try / Except al código que no me dio ningún mensaje de error pero tampoco me dio ningún resultado.
No estoy seguro de lo que está pasando? Cualquier ayuda para resolver esto será muy apreciada.
import arcpy, os
Try:
roadpath = arcpy.GetParameterAsText(0)
tablepath = arcpy.GetParameterAsText(1)
datapath = os.path.split(tablepath)[0]
tablename = os.path.split(tablepath)[1]
rows = arcpy.SearchCursor(roadpath,"FROMLEFT <> 0 AND TOLEFT <> 0","","STREET_NAME_ID;FROMLEFT;TOLEFT","STREET_NAME_ID A;FROMLEFT A;TOLEFT A")
arcpy.env.workspace = datapath
if arcpy.Exists(tablename):
arcpy.DeleteRows_management(tablename)
else:
arcpy.CreateTable_management(datapath,tablename,roadpath)
arcpy.DeleteField_management(tablename,"SHAPE_Length")
irows = arcpy.InsertCursor(tablename)
first = True
for row in rows:
if first:
first = False
else:
GISID = row.GIS_ID
stid = row.STREET_NAME_ID
fl = row.FROMLEFT
tl = row.TOLEFT
if stid == prev_stid and fl <= prev_tl:
irow = irows.newRow()
irow.GIS_ID = prev_GISID
irow.STREET_NAME_ID = prev_stid
irow.FROMLEFT = prev_fl
irow.TOLEFT = prev_tl
irows.insertRow(irow)
del irow
irow = irows.newRow()
irow.GIS_ID = GISID
irow.STREET_NAME_ID = stid
irow.FROMLEFT = fl
irow.TOLEFT = tl
irows.insertRow(irow)
del irow
prev_GISID = row.GIS_ID
prev_stid = row.STREET_NAME_ID
prev_fl = row.FROMLEFT
prev_tl = row.TOLEFT
del rows, irows
except:
print arcpy.GetMessages()
` `
tablepath
lugar de tablename
. ¿Es solo un error tipográfico en el foro o es realmente así en el script? El error sugiere lo primero, entonces, ¿puede proporcionar ejemplos de los valores que está pasando a ambos parámetros? ¿También tienes una import arcpy
línea en la parte superior de tu script?
rows =
deirows
incluido en un bloque try ... except da un mensaje de error más revelador. También sería útil si puede poner una muestra de los datos y el script completo en alguna parte ( minus.com es un lugar para compartir fácilmente con el público).