Wenn Sie sowohl die Zeilen- als auch die Cursorobjekte (z. B. del row, rows
) ordnungsgemäß löschen und die Sperre erhalten bleibt, ist es wahrscheinlich, dass ArcMap selbst, nicht arcpy, immer noch darauf verweist.
Wird das Shapefile von einer Ebene im Inhaltsverzeichnis referenziert oder wird es von Ihrem Skript-Tool zum Inhaltsverzeichnis hinzugefügt?
In letzterem Fall können Sie versuchen, "Ergebnisse von Geoverarbeitungsvorgängen zur Anzeige hinzufügen" unter Geoverarbeitung-> Geoverarbeitungsoptionen in ArcMap zu deaktivieren.
Ein zusätzlicher Vorschlag: Wenn Sie dies als temporäres / intermediäres Dataset tun und die Anzahl der Features nicht zu groß ist, versuchen Sie, den in_memory
Arbeitsbereich anstelle eines Shapefiles zu verwenden, um das Sperrproblem vollständig zu umgehen und eine gute potenzielle Leistungssteigerung zu erzielen .
Stellen Sie einfach sicher, dass Sie den Arbeitsbereich in_memory oder die spezifischen Datensätze, die Sie dort mit Löschen (Datenverwaltung) erstellen, löschen, bevor Sie das Skript beenden. Andernfalls bleibt es im Speicher, bis die Anwendung geschlossen wird.
Abschließend möchte ich noch darauf hinweisen, dass sich das Sperrverhalten von Shapefiles in 10.0 geändert hat, um strenger zu werden, indem die Sperrdateien nicht entfernt werden, wenn Sie eine Ebene aus dem Inhaltsverzeichnis entfernen. Siehe auch diesen Artikel und diese verwandte Frage .