期望ArcPy覆盖地理数据库文件中的文件吗?


13

我正在写一个python脚本,我有一个mxd,它的工作区是一个地理数据库文件,其中包含我需要的所有文件。尽管有以下命令,但我在测试和编写代码时遇到的问题是:

arcpy.env.overwriteOutput=True

地理数据库中包含的所有文件均无法覆盖。有办法解决这个问题吗?


在ArcMap中,是否检查了“地理处理”>“地理处理选项”中的“覆盖地理处理操作的输出”?
巴尔托克2012年

是的,我做到了。但是没有用。
Annalisa Minelli 2012年

3
您是否知道数据上的任何模式锁?那也可以防止覆盖。文件和个人地理数据库对此特别敏感,因为如果一个要素类具有锁定,它将锁定整个地理数据库。
2012年

2
当您说“地理数据库中包含的所有文件都无法覆盖”时,您是说脚本失败或脚本完成了,只是不覆盖它应该覆盖的要素类?
乍得·库珀

尝试从python IDE(例如PyScripter)运行代码,然后关闭ArcMap。
geogeek 2012年

Answers:


16

如果我没记错的话,在某些情况下overwriteOutput将无法工作。在这种情况下,请在写入新文件之前使用以下代码:

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

1

确保文件地理数据库未压缩,即只读。


0

我也遇到了这个问题,有关模式锁的评论确实很有帮助。如果您具有带有该要素类的mxd,它将锁定该要素类,因此无法将其删除。如果仅退出包含该要素类的mxd并运行相同的覆盖代码,则它似乎可以工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.