Tôi ghét phải làm phiền tất cả các bạn với cùng một vấn đề lặp đi lặp lại nhưng tôi gặp phải một vấn đề mới mỗi khi tôi thực hiện một thay đổi nhỏ đối với mã. Tất cả những gì tôi đã làm với mã dưới đây là để thay thế tên trường để phù hợp với lớp tính năng ban đầu. Bây giờ nó không hoạt động. Nó đã cho tôi
<type 'exceptions.RuntimeError'>: ERROR 999999: Error executing function.
Failed to execute (Script).
Tôi đã thử thêm Thử / Ngoại trừ mã không cung cấp cho tôi bất kỳ thông báo lỗi nào nhưng cũng không cho tôi bất kỳ kết quả nào.
Tôi không chắc chuyện gì đang xảy ra? Bất kỳ trợ giúp để tìm ra điều này sẽ được rất nhiều đánh giá cao.
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
thay vì tablename
. Đây chỉ là một lỗi đánh máy diễn đàn hoặc nó thực sự như thế trong kịch bản? Lỗi cho thấy trước đây, vì vậy bạn có thể cung cấp các ví dụ về các giá trị bạn đang truyền cho cả hai tham số của mình không? Ngoài ra, bạn có một import arcpy
dòng ở đầu kịch bản của bạn?
rows =
đểirows
bao gồm trong một thử ... ngoại trừ khối đưa ra một thông báo lỗi hở hang hơn. Nó cũng sẽ hữu ích nếu bạn có thể đặt một mẫu dữ liệu và tập lệnh đầy đủ ở đâu đó ( minus.com là một nơi để chia sẻ công khai dễ dàng).