覆盖不起作用

时间:2017-03-07 20:50:26

标签: python gis overwrite arcpy

我已经看到其他线索在这里触及我遇到的问题,但它们都没有适用于我的问题或提供解决方案,所以我想我发布了一个新主题

基本上,我创建了一个每周运行并更新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)

我知道那些最后一行不应该分开;它们不在我的代码中,我只是在帖子中格式化了。

1 个答案:

答案 0 :(得分:0)

我不使用FeatureClassToShape文件,而是使用CopyFeatures,因此您可以显式指定输出的名称(不仅仅是输出工作区),它将被覆盖:

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

Feature Class to Feature Class也非常适合。

两者都接受shapefile作为输入和/或输出。

正如Feature Class To Shapefile的帮助页面所述(它应该用于一步处理多个输入shapefile):

  

如果输出shapefile中已存在输出shapefile,则为数字   将附加到末尾以使shapefile名称唯一(for   rivers ,.shp)。