Ожидаете, что 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.