Я не вижу, как имя файла в сообщении об ошибке blahblah \ buff1.shp может возникнуть из вашего кода.
for i in range(0,1):
buffer_shp = newpath + "buff" + str(i) + ".shp"
gp.Buffer_analysis(center_services, buffer_shp, etc etc)
должен выдавать blahblah\buff0.shp
, а не blahblah\buff1.shp
... Я настоятельно рекомендую, чтобы отображаемый вами код был тем кодом, который вы на самом деле выполняли. Добавьте оператор print перед вызовом gp.Buffer_analysis()
, чтобы показать значения i и repr (buffer_shp). Показать все результаты печати.
Также комментарий #Loop through a range of buffers (1 ->100)
указывает, что вы хотите начать с 1, а не с 0. Это очень помогает (вам), если комментарии соответствуют коду.
Не повторяйся; вместо
os.mkdir( path + results )
newpath = path + results
сделать это:
newpath = path + results # using os.path.join() is even better
os.mkdir(newpath)
Возможно, вы захотите построить все пути, используя os.path.join ().
Вам необходимо принять вызов os.mkdir()
вне циклов, т. Е. Делать это один раз за запуск сценария, а не один раз каждый раз вокруг внутреннего цикла.
Результаты этих утверждений не используются:
buffered_analysis_count_shp = newpath + "buffered_analysis_count.shp"
count_txt = newpath + "count.txt"
Обновление
Поиск в первых нескольких словах вашего сообщения об ошибке ( всегда хорошая идея! ) приводит к следующему: устранение ошибок геообработки , которая предоставляет следующую информацию:
ошибки геообработки, возникающие при
чтение или запись данных ArcSDE / СУБД
получить общую ошибку
сообщение, такое как ошибка 00210, когда
вывод записи
Далее предлагаются некоторые способы определения вашей точной проблемы. Если это вам не поможет, вы можете попробовать задать вопрос на соответствующем форуме ESRI или в GIS StackExchange .