2017-03-07 131 views
0

我已經看到這裏的其他線程觸及我遇到的問題,但它們都不適用於我的問題或提供解決方案,所以我想我會發佈一個新線程。覆蓋不工作

基本上,我創建了一個腳本,每週運行一次,並通過將要素類轉換爲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) 

我知道那些最後一行不應該被拆分;他們不在我的代碼中,我只是在帖子中格式化時遇到問題。

+0

請注意,有一個[gis.se]堆棧交換。 – PolyGeo

回答

0

而不是使用FeatureClassToShapefile的,我會用CopyFeatures,這樣你就可以顯式指定輸出的姓名(不只是輸出工作空間),它會被覆蓋:

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

Feature Class to Feature Class是另一種完全適合這裏。

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

如幫助頁面Feature Class To Shapefile表示(這是應該被用於處理在一個步驟中的多個輸入shape文件):

如果輸出shape文件在輸出文件夾已經存在,一個數 將添加到最後以使shapefile名稱唯一(對於 示例,rivers_1.shp)。

+0

我想將一個GDB要素類導出到一個不在GDB中的shapefile中;複製功能是否會嘗試複製爲GDB要素類? – user5905246

+0

我也只是好奇我在做什麼錯誤的覆蓋過程。我可能需要它來解決未來的問題。 – user5905246

+0

因此,使用要素類到要素類操作將允許覆蓋文件,但要素類到Shapefile操作不會?這就是你說的要點嗎? – user5905246