覆盖不工作

问题描述:

我已经看到这里的其他线程触及我遇到的问题,但它们都不适用于我的问题或提供解决方案,所以我想我会发布一个新线程。覆盖不工作

基本上,我创建了一个脚本,每周运行一次,并通过将要素类转换为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

而不是使用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