작업 공간을 반복하고 모양 파일의 이름을 바꾸고 피쳐 데이터 세트로 복사하는 편리한 스크립트 도구가 있습니다. 그러나 작업 공간 어딘가에 손상된 쉐이프 파일이 있으면 스크립트가 실패하고 처리가 중지됩니다.
이와 같은 오류를 어떻게 처리합니까? 오류 파일을 인쇄하고 for 루프에서 다음 shapefile을 계속 처리하는 방법이 있습니까?
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()