ArcPy'nin coğrafi veritabanı dosyasındaki dosyaların üzerine yazmasını mı bekliyorsunuz?


13

Bir python komut dosyası yazıyorum, bir mxd var ve onun çalışma alanı içine tüm dosyaları ile bir geodatabase dosyası. Test ve kod yazarken karşılaştığım sorun, komut rağmen:

arcpy.env.overwriteOutput=True

coğrafi veritabanındaki tüm dosyaların üzerine yazılmaz. Bu sorunu çözmek için bir yol var mı?


ArcMap'te, Coğrafi İşleme> Coğrafi İşleme Seçenekleri bölümündeki "Coğrafi işleme işlemlerinin çıktılarının üzerine yaz" seçeneğini işaretlediniz mi?
Baltok

Evet yaptım. Ama işe yaramadı.
Annalisa Minelli

3
Verilerinizde şema kilitleri olduğunu biliyor musunuz? Bu da üzerine yazmayı engelleyebilir. Dosya ve Kişisel Coğrafi Veritabanları buna özellikle duyarlıdır, çünkü bir özellik sınıfının kilidi varsa, tüm coğrafi veritabanını kilitler.
Baltok

2
"Coğrafi veritabanında yer alan tüm dosyaların üzerine yazılmadığını" söylediğinizde, komut dosyasının başarısız olduğunu veya tamamlandığını, ancak yalnızca olması gereken özellik sınıflarının üzerine yazılmadığını mı kastediyorsunuz?
Chad Cooper

kodunuzu PyScripter gibi bir python IDE'den çalıştırmayı deneyin, ardından ArcMap'i kapatın.
geogeek

Yanıtlar:


16

Doğru hatırlıyorsam overwriteOutput'un çalışmadığı belirli durumlar vardır. Bu durumda, yeni dosyalar yazmadan önce aşağıdaki kodu kullanın:

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

1

Coğrafi veritabanı dosyasının sıkıştırılmadığından, yani salt okunur olduğundan emin olun.


0

Ben de bu sorunu yaşıyordu ve şema kilitleri hakkında yorum gerçekten yardımcı oldu. Üzerinde o özellik sınıfının bulunduğu bir mxd'niz varsa, o özellik sınıfını kilitler, böylece silinemez. Bu özellik sınıfını içeren mxd'den çıkıp aynı üzerine yazma kodunu çalıştırırsanız, işe yarıyor gibi görünüyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.