Ich hasse es, Sie alle immer wieder mit demselben Problem zu nerven, aber ich stoße jedes Mal auf ein neues Problem, wenn ich den Code geringfügig ändere. Alles, was ich mit dem folgenden Code gemacht habe, war, Feldnamen zu ersetzen, die mit der ursprünglichen Feature-Class übereinstimmen. Jetzt funktioniert es nicht. Es gab mir
<type 'exceptions.RuntimeError'>: ERROR 999999: Error executing function.
Failed to execute (Script).
Ich habe versucht, Try / Except zum Code hinzuzufügen, der mir keine Fehlermeldungen gab, aber auch keine Ergebnisse lieferte.
Ich bin nicht sicher, was los ist? Jede Hilfe, um dies herauszufinden, wird sehr geschätzt.
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
statt lesen sollte tablename
. Dies ist nur ein Tippfehler im Forum oder ist es tatsächlich so im Skript? Der Fehler deutet auf den ersteren hin. Können Sie also Beispiele für die Werte angeben, die Sie an beide Parameter übergeben? Haben Sie auch eine import arcpy
Zeile oben in Ihrem Skript?
rows =
bisirows
einschließlich einzuschließen ... außer Block gibt eine aufschlussreichere Fehlermeldung. Es wäre auch hilfreich, wenn Sie irgendwo ein Beispiel der Daten und des vollständigen Skripts ablegen könnten ( minus.com ist ein Ort für die einfache öffentliche Freigabe).