2017-03-07 1 views
0

J'ai vu d'autres discussions ici sur le problème que j'ai, mais aucun d'entre eux ne s'applique à mon problème ou fournir une solution, alors j'ai pensé que je posterais un nouveau sujet. Fondamentalement, je crée un script qui s'exécute chaque semaine et met à jour un fichier de formes (techniquement, il met à jour les 8 fichiers associés à un fichier de formes, y compris le CPG) en convertissant une classe d'entités en fichier de formes. Actuellement, je l'ai configuré pour supprimer les fichiers existants, puis les réexporter, mais je préfère qu'ils soient écrasés. Pour une raison quelconque, je ne peux pas l'écraser; il crée simplement les mêmes fichiers avec "_1" ajouté à la fin. Où vais-je mal? Merci!Overwrite ne fonctionne pas

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) 

Je sais que ces dernières lignes ne doivent pas être divisées; ils ne sont pas dans mon code, j'avais juste du mal à formater dans le post.

+0

Veuillez noter qu'il existe un échange de pile [gis.se]. – PolyGeo

Répondre

0

Au lieu d'utiliser FeatureClassToShapefile, je voudrais utiliser CopyFeatures, donc, vous pouvez spécifier le nom de la sortie (non seulement l'espace de travail de sortie) et il sera remplacé:

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

Feature Class to Feature Class est un autre parfaitement adapté ici aussi.

Les deux accepteront des fichiers de formes en entrée et/ou en sortie.

Comme indiqué dans la page d'aide pour Feature Class To Shapefile (qui est censé être utilisé pour traiter les fichiers de formes d'entrée multiples en une seule étape):

Si le fichier de formes de sortie existe déjà dans le dossier de sortie, un certain nombre sera être ajouté à la fin pour rendre le nom du fichier de formes unique (pour l'exemple , rivers_1.shp).

+0

J'essaie d'exporter une classe d'entités GDB vers un fichier de formes qui ne se trouve pas dans un GDB; les fonctions de copie ne tenteront-elles pas de copier en tant que classe d'entités GDB? – user5905246

+0

Je suis également simplement curieux de savoir ce que je fais de mal avec le processus d'écrasement. J'en aurais peut-être besoin pour un problème futur. – user5905246

+0

L'utilisation de l'opération Classe d'entités vers classe d'entités permet donc d'écraser les fichiers, mais pas l'opération Classe d'objets vers fichier Shapefile. Est-ce l'essentiel de ce que vous dites? – user5905246