ArcPyがジオデータベースファイル内のファイルを上書きすることを期待していますか?


13

私はpythonスクリプトを書いています。mxdがあり、そのワークスペースは必要なすべてのファイルを含むジオデータベースファイルです。コードのテストと作成で直面している問題は、コマンドにもかかわらず、

arcpy.env.overwriteOutput=True

ジオデータベースに含まれるすべてのファイルは上書きできません。これを回避する方法はありますか?


ArcMapで、[ジオプロセシング]> [ジオプロセシングオプション]の[ジオプロセシング操作の出力を上書きする]をチェックしましたか?
バルトーク

はい、そうしました。しかし、うまくいきませんでした。
アンナリサミネリ

3
データのスキーマロックを知っていますか?それは同様に上書きを防ぐことができます。1つのフィーチャクラスにロックがある場合、ジオデータベース全体がロックされるため、ファイルジオデータベースとパーソナルジオデータベースは特にこれに敏感です。
バルトーク

2
「ジオデータベースに含まれるすべてのファイルが上書きに失敗する」と言うとき、スクリプトは失敗するか、完了するが、必要なフィーチャクラスは上書きされないということですか?
チャドクーパー

PyScripterなどのPython IDEからコードを実行して、ArcMapを閉じてください。
geogeek

回答:


16

正しく思い出せば、overwriteOutputが機能しない特定の状況があります。その場合、新しいファイルを書き出す前に次のコードを使用します。

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

1

ファイルジオデータベースが圧縮されていないこと、つまり読み取り専用であることを確認してください。


0

私もこの問題を抱えていましたが、スキーマロックについてのコメントは本当に役に立ちました。そのフィーチャクラスを持つmxdがある場合、そのフィーチャクラスはロックされ、削除できなくなります。そのフィーチャクラスを含むmxdを終了し、同じ上書きコードを実行するだけで機能するようです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.