覆盖不工作
我已经看到这里的其他线程触及我遇到的问题,但它们都不适用于我的问题或提供解决方案,所以我想我会发布一个新线程。覆盖不工作
基本上,我创建了一个脚本,每周运行一次,并通过将要素类转换为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 to Feature Class是另一种完全适合这里。
两者都将接受shapefile作为输入和/或输出。
如帮助页面Feature Class To Shapefile表示(这是应该被用于处理在一个步骤中的多个输入shape文件):
如果输出shape文件在输出文件夹已经存在,一个数 将添加到最后以使shapefile名称唯一(对于 示例,rivers_1.shp)。
我想将一个GDB要素类导出到一个不在GDB中的shapefile中;复制功能是否会尝试复制为GDB要素类? – user5905246
我也只是好奇我在做什么错误的覆盖过程。我可能需要它来解决未来的问题。 – user5905246
因此,使用要素类到要素类操作将允许覆盖文件,但要素类到Shapefile操作不会?这就是你说的要点吗? – user5905246
请注意,有一个[gis.se]堆栈交换。 – PolyGeo