Erwarten Sie, dass ArcPy Dateien in der Geodatabase-Datei überschreibt?


13

Ich schreibe ein Python-Skript, habe ein mxd und sein Arbeitsbereich ist eine Geodatabase-Datei mit allen Dateien, die ich benötige. Das Problem beim Testen und Schreiben von Code ist, dass trotz des Befehls:

arcpy.env.overwriteOutput=True

Alle in der Geodatabase enthaltenen Dateien können nicht überschrieben werden. Gibt es eine Möglichkeit, dies zu umgehen?


Haben Sie in ArcMap unter "Geoverarbeitung> Geoverarbeitungsoptionen" die Option "Ausgaben von Geoverarbeitungsvorgängen überschreiben" aktiviert?
Baltok

Ja, habe ich. Hat aber nicht funktioniert.
Annalisa Minelli

3
Sind Ihnen Schemasperren für Ihre Daten bekannt? Dies kann auch ein Überschreiben verhindern. Datei- und persönliche Geodatabases reagieren besonders empfindlich darauf, denn wenn eine Feature-Class über eine Sperre verfügt, wird die gesamte Geodatabase gesperrt.
Baltok

2
Wenn Sie sagen, dass "alle in der Geodatabase enthaltenen Dateien nicht überschrieben werden können", bedeutet dies, dass das Skript fehlschlägt oder abgeschlossen wird, aber nicht die Feature-Classes überschreibt, die es sollte?
Chad Cooper

Versuchen Sie, Ihren Code von einer Python-IDE wie PyScripter aus auszuführen, und schließen Sie dann ArcMap.
Geogeek

Antworten:


16

Wenn ich mich richtig erinnere, gibt es bestimmte Situationen, in denen overwriteOutput nicht funktioniert. Verwenden Sie in diesem Fall den folgenden Code, bevor Sie neue Dateien schreiben:

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

1

Stellen Sie sicher, dass die Datei-Geodatabase nicht komprimiert ist, dh schreibgeschützt.


0

Ich hatte auch dieses Problem und der Kommentar zu den Schemasperren hat wirklich geholfen. Wenn Sie einen MXD mit dieser Feature-Class haben, wird diese Feature-Class gesperrt, sodass sie nicht gelöscht werden kann. Wenn Sie nur den mxd beenden, der diese Feature-Class enthält, und denselben Überschreibcode ausführen, scheint dies zu funktionieren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.