Suite

Ajout d'un nouveau champ et remplissage avec le nom du fichier de formes

Ajout d'un nouveau champ et remplissage avec le nom du fichier de formes


J'ai un ensemble de fichiers de formes qui ont besoin d'un nouveau champ qui leur est ajouté appelé "Policy_Ref". Je dois ensuite mettre à jour ce champ avec le nom du fichier de formes. Cependant, lorsque je le fais, il utilise le titre complet, y compris le .shp. Cependant je ne veux pas du .shp dans les champs. Voici mon code pour l'instant :

importer arcpy arcpy.workspace.env = r"teamGIS/shp" fcs = arcpy.ListFeatureClasses() pour fc dans fcs : arcpy.AddField_management(fc, "Policy_Ref", "TEXT") arcpy.CalculateField_management(fc, "Policy_Ref", "'" + fc + "'") arcpy.Merge_management(fcs, "new_shp")

Comment supprimer le .shp avant ou après l'exécution du code ?


C'est vraiment une question Python plutôt qu'ArcPy, il serait donc préférable de faire des recherches sur Stack Overflow.

Cependant, vous pouvez essayer de modifier :

arcpy.CalculateField_management(fc, "Policy_Ref", "'" + fc + "'")

à:

arcpy.CalculateField_management(fc, "Policy_Ref", "'" + fc.replace(".shp","") + "'")

Ou vous pouvez utiliser un descriptif et .baseName

fcs = arcpy.ListFeatureClasses("","","") pour fc dans fcs : desc = arcpy.Describe(fc) print fc print desc.baseName ActualName = desc.baseName