Python 覆盖不工作
我在这里看到过其他的帖子涉及到我的问题,但是没有一个帖子适用于我的问题或者提供了解决方案,所以我想我应该发布一个新的帖子 基本上,我正在创建一个脚本,通过将要素类转换为shapefile,每周运行一次并更新shapefile(从技术上讲,它会更新与shapefile关联的8个文件,包括CPG)。目前,我已将其设置为删除现有文件,然后重新导出它们,但我更希望它们被覆盖。无论出于什么原因,我都无法覆盖它;它只是创建相同的文件,并在末尾附加“_1”。我哪里做错了?谢谢Python 覆盖不工作,python,gis,overwrite,arcpy,Python,Gis,Overwrite,Arcpy,我在这里看到过其他的帖子涉及到我的问题,但是没有一个帖子适用于我的问题或者提供了解决方案,所以我想我应该发布一个新的帖子 基本上,我正在创建一个脚本,通过将要素类转换为shapefile,每周运行一次并更新shapefile(从技术上讲,它会更新与shapefile关联的8个文件,包括CPG)。目前,我已将其设置为删除现有文件,然后重新导出它们,但我更希望它们被覆盖。无论出于什么原因,我都无法覆盖它;它只是创建相同的文件,并在末尾附加“_1”。我哪里做错了?谢谢 import arcpy, os
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,而不是使用FeatureClassToShapefile,因此您可以显式指定输出的名称(不仅仅是输出工作区),它将被覆盖:
arcpy.CopyFeatures_management(os.path.join(connStr, inputParcels), os.path.join(outWrkSpc, shpParcels))
这也是另一个非常适合的地方
两者都将接受shapefile作为输入和/或输出
如的帮助页面中所述(该页面应用于一步处理多个输入形状文件):
如果输出文件夹中已存在输出shapefile,请输入一个数字
将附加到末尾以使shapefile名称唯一(对于
例如,rivers_1.shp)
我将使用FeatureClassToShapefile,而不是使用FeatureClassToShapefile,这样您可以显式指定输出的名称(不仅仅是输出工作区),并且它将被覆盖:
arcpy.CopyFeatures_management(os.path.join(connStr, inputParcels), os.path.join(outWrkSpc, shpParcels))
这也是另一个非常适合的地方
两者都将接受shapefile作为输入和/或输出
如的帮助页面中所述(该页面应用于一步处理多个输入形状文件):
如果输出文件夹中已存在输出shapefile,请输入一个数字
将附加到末尾以使shapefile名称唯一(对于
例如,rivers_1.shp)
请注意存在堆栈交换。请注意存在堆栈交换。我正在尝试将GDB要素类导出到不在GDB内的形状文件;复制特性不会尝试作为GDB特性类进行复制吗?我也很好奇我在覆盖过程中做错了什么。我可能需要它来解决将来的问题。因此,使用“要素类到要素类”操作将允许覆盖文件,但“要素类到形状文件”操作将不会?这就是你所说的要点吗?我试图将一个GDB要素类导出到一个不在GDB中的shapefile;复制特性不会尝试作为GDB特性类进行复制吗?我也很好奇我在覆盖过程中做错了什么。我可能需要它来解决将来的问题。因此,使用“要素类到要素类”操作将允许覆盖文件,但“要素类到形状文件”操作将不会?这就是你说的要点吗?