簡體   English   中英

覆蓋不起作用

[英]Overwrite Not Working

我已經看到其他線程在這里觸及我遇到的問題,但它們都沒有應用於我的問題或提供解決方案,所以我想我會發布一個新線程。

基本上,我正在創建一個每周運行並更新shapefile的腳本(技術上,它通過將要素類轉換為shapefile來更新與shapefile關聯的8個文件,包括CPG)。 目前我已將其設置為刪除現有文件然后重新導出它們,但我寧願讓它們被覆蓋。 無論出於何種原因,我無法覆蓋它; 它只是創建了相同的文件,末尾附加了“_1”。 我哪里錯了? 謝謝!

import arcpy, os
from arcpy import env
import time
import smtplib

arcpy.env.overwriteOutput = True

connStr = "D:\Jobs\BSA-GIS-Shapefiles\Connections\GIS_Enterprise.sde"
outWrkSpc = "\\\gis\gisdata\BSA_Shapes"

inputParcels = "GISEnterprise.EOWNER.CParcel"
inputParcelAnnoAddr = "GISEnterprise.EOWNER.cParcel_Anno_Address"
inputPlats = "GISEnterprise.EOWNER.cPlat"

shpParcels =  "CParcel.shp"
shpParcelAnnoAddr =  "cParcel_Anno_Address.shp"
shpPlats =  "cPlat.shp"


env.workspace = outWrkSpc

try:
    arcpy.Delete_management(shpParcels)
    arcpy.Delete_management(shpParcelAnnoAddr)
    arcpy.Delete_management(shpPlats)



    arcpy.FeatureClassToShapefile_conversion(os.path.join(connStr,     
    inputParcels),outWrkSpc)
    arcpy.FeatureClassToShapefile_conversion(os.path.join(connStr
    ,inputParcelAnnoAddr), outWrkSpc)
    arcpy.FeatureClassToShapefile_conversion(os.path.join(connStr
    ,inputPlats), outWrkSpc)

我知道最后一行不應該分開; 它們不在我的代碼中,我只是在帖子中格式化了。

我不使用FeatureClassToShapefile,而是使用CopyFeatures ,因此您可以顯式指定輸出的名稱(不僅僅是輸出工作區),它將被覆蓋:

arcpy.CopyFeatures_management(os.path.join(connStr, inputParcels), os.path.join(outWrkSpc, shpParcels))

Feature Class到Feature Class也是另一個非常合適的選擇。

兩者都接受shapefile作為輸入和/或輸出。

Feature Class To Shapefile的幫助頁面中所述(它應該用於在一個步驟中處理多個輸入shapefile):

如果輸出文件文件已存在於輸出文件夾中,則會在末尾附加一個數字,以使shapefile名稱唯一(例如,rivers_1.shp)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM