##Script Name: calculate sum ##Description: calculate sum ##Created By: Elaine Kuo ##Date: 26/05/2012 #Import standard library modules import arcgisscripting import os #Create the Geoprocessor object gp = arcgisscripting.create(9.3) #Set the workspace. gp.Workspace= "H:/temp/test" #Set the workspace. List all of the feature classes in the dataset outWorkspace= "H:/temp" #Get a list of the featureclasses in the input folder fcs = gp.ListFeatureClasses() # Loop through every item in the list that was just generated for fc in fcs: # Break out the name, no path or extension, using the describe object. desc = gp.describe(fc) featureName = desc.name # Add a field to this shapefile, of type LONG gp.AddField (fc, "All", "Text", 6,6) # Make temporary featureclasses gp.MakeFeatureLayer(fc,"lyr") # Get a list of the fields in the featureclass fields = gp.ListFields("lyr", "C*", "String") # Loop through every item in the list that was just generated for field in fields: gp.toolbox = "Data Management" # Select records to be copied (C*, i.e. C7658) query = "\"%s\" = 'S'" % field.Name gp.SelectLayerByAttribute("lyr", "ADD_TO_SELECTION", query) # copy values in existing fields to the new field gp.CalculateField("lyr", "All", 'S') #Validate the new feature class name for the output workspace. OutFeatureClass = outWorkspace + os.sep + gp.ValidateTableName(fc,outWorkspace) # copy feature gp.CopyFeatures("lyr", OutFeatureClass) # clear memory of layers gp.Delete("lyr") gp.AddMessage(gp.GetMessages()) print gp.GetMessages()
Solved! Go to Solution.
desc1 = gp.Describe("lyr") print desc1.FIDSet
gp.CalculateField("lyr", "All", 'S')
gp.SelectLayerByAttribute("lyr", "ADD_TO_SELECTION", query)
desc1 = gp.Describe("lyr") print desc1.FIDSet
gp.CalculateField("lyr", "All", 'S')
gp.SelectLayerByAttribute("lyr", "ADD_TO_SELECTION", query)