Очікуєте ArcPy перезаписати файли у файл бази даних geodata?


13

Я пишу сценарій python, у мене є mxd, а його робоча область - це файл бази даних geodata з усіма потрібними мені файлами. Проблема, з якою я стикаюся при тестуванні та написанні коду, полягає в тому, що, незважаючи на команду:

arcpy.env.overwriteOutput=True

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


В ArcMap ви перевіряли "Перезапис результатів операцій геообробки" в розділі Геообробка> Параметри геообробки?
— Балток

так. Але не вийшло.
— Анналіса Мінеллі

3
Чи знаєте ви про якісь блокування схем у ваших даних? Це також може запобігти перезапису. Файлові та персональні бази даних геоданих особливо чутливі до цього, оскільки якщо один клас функцій має блокування, він блокує всю базу даних геоданих.
— Балток

2
Коли ви говорите, що "всі файли, що містяться в базі даних geodata, не вдається перезаписати", ти маєш на увазі, що сценарій не працює або він завершується, але просто не перезаписує класи класів, які він повинен?
— Чад Купер

спробуйте запустити свій код з ID python на зразок PyScripter, а потім закрийте ArcMap.
— geogeek

Відповіді:


16

Якщо я правильно пам'ятаю, є певні ситуації, для яких перезапис виводу не буде працювати. У такому випадку перед написанням нових файлів використовуйте такий код:

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

1

Переконайтесь, що база даних геоданих не стискається, тобто читається лише.


0

У мене також була ця проблема, і коментар щодо замків схеми дійсно допоміг. Якщо у вас є mxd з цим класом функцій, він блокує цей клас функцій, тому його неможливо видалити. Якщо ви просто вийдете з mxd, який містить цей клас функцій, і запустите той же код перезапису, він, здається, працює.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.