Tôi có một công cụ kịch bản tiện dụng lặp lại trong không gian làm việc, đổi tên và sao chép các shapefiles thành tập dữ liệu tính năng. Tuy nhiên, nếu có một shapefile bị hỏng ở đâu đó trong không gian làm việc thì script bị lỗi và dừng xử lý.
Làm thế nào để bạn xử lý các lỗi như thế này? Có cách nào để in tệp lỗi và tiếp tục xử lý shapefile tiếp theo trong vòng lặp for để hoàn thành không?
import arcpy
from arcpy import env
# Allow overwriting of output
env.overwriteOutput = True
# Parameters
env.workspace = arcpy.GetParameterAsText(0)
state = arcpy.GetParameterAsText(1)
gdb = arcpy.GetParameterAsText(2)
# Get a list of shapefiles in folder
fcs = arcpy.ListFeatureClasses()
# Find the total count of shapefiles in list
fcCount = len(fcs)
# Set the progressor
arcpy.SetProgressor("step", "Copying shapefiles to geodatabase...", 0,fcCount, 1)
# For each shapefile, copy to a file geodatabase
try:
for shp in fcs:
# Define name for the output points
fc = str(state + shp[0:9])
# Update the progressor label for current shapefile
arcpy.SetProgressorLabel("Loading " + shp + "...")
# Copy the data
arcpy.CopyFeatures_management(shp, str(gdb + "\\" + fc))
# Update the progressor position
arcpy.SetProgressorPosition()
except Exception as e:
print "An error has occurred"
print e
arcpy.ResetProgressor()