Ожидаете, что ArcPy перезапишет файлы в базе геоданных?


13

Я пишу скрипт на Python, у меня есть mxd, а его рабочее пространство представляет собой файл базы геоданных со всеми необходимыми мне файлами. Проблема, с которой я сталкиваюсь при тестировании и написании кода, заключается в том, что, несмотря на команду:

arcpy.env.overwriteOutput=True

все файлы, содержащиеся в базе геоданных, не могут быть перезаписаны. Есть способ обойти это?


В ArcMap вы проверяли «Перезаписать выходные данные операций геообработки» в разделе «Геообработка> Параметры геообработки»?
— Балток

Да, я сделал. Но не сработало.
— Анналиса Минелли

3
Вам известны какие-либо блокировки схемы для ваших данных? Это также может предотвратить перезапись. Файловая и личная базы геоданных особенно чувствительны к этому, потому что если один класс пространственных объектов имеет блокировку, он блокирует всю базу геоданных.
— Балток

2
Когда вы говорите, что «все файлы, содержащиеся в базе геоданных, не могут быть перезаписаны», вы имеете в виду, что скрипт завершается ошибкой или завершается, но просто не перезаписывает классы объектов, как это должно быть?
— Чед Купер

попробуйте запустить ваш код из Python IDE, например PyScripter, затем закройте ArcMap.
— Geogeek

Ответы:


16

Если я правильно помню, есть определенные ситуации, для которых overwriteOutput не будет работать. В этом случае используйте следующий код перед записью новых файлов:

if arcpy.Exists(fileInQuestion):
    arcpy.Delete_management(fileInQuestion)

1

Убедитесь, что файловая база геоданных не сжата, т.е. доступна только для чтения.


0

У меня также была эта проблема, и комментарий о блокировках схемы действительно помог. Если у вас есть mxd с этим классом объектов, он блокирует этот класс объектов, поэтому его нельзя удалить. Если вы просто выйдете из mxd, содержащего этот класс пространственных объектов, и запустите тот же код перезаписи, это, похоже, сработает.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.