Eu odeio incomodar todos vocês com o mesmo problema repetidamente, mas encontro um novo problema sempre que faço uma pequena alteração no código. Tudo o que fiz no código abaixo foi substituir os nomes dos campos para corresponder à classe do recurso original. Agora não funciona. Deu-me
<type 'exceptions.RuntimeError'>: ERROR 999999: Error executing function.
Failed to execute (Script).
Tentei adicionar Try / Except ao código que não me deu nenhuma mensagem de erro, mas também não deu nenhum resultado.
Não tenho certeza do que está acontecendo? Qualquer ajuda para descobrir isso será muito 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()
` `
(ref)
tablepath
vez de tablename
. Isso é apenas um erro de digitação no fórum ou é realmente assim no script? O erro sugere o primeiro, então você pode fornecer exemplos dos valores que está passando para os dois parâmetros? Você também tem uma import arcpy
linha na parte superior do seu script?
rows =
queirows
inclusive em um try ... exceto bloco dá uma mensagem de erro mais revelador. Também ajudaria se você pudesse colocar uma amostra dos dados e do script completo em algum lugar ( minus.com é um local para fácil compartilhamento público).