He creado un guión pitón que resume por lotes todos los campos de la cadena dentro de una tabla fc basada en la concatenación de dos campos. El guión hace un bucle a través de una lista de los campos, sin embargo se detiene a mitad de camino (el mismo punto cada vez). ¿Por qué este código no procesa los campos de cadena restantes dentro de la lista? Después de ejecutarlo una vez, si borro todos los campos que procesó correctamente la primera vez, y luego lo vuelvo a ejecutar sólo en los campos que no procesó, funciona bien. Tal vez mi problema es con esta línea:
fieldname = flist.pop(0)
¿Ideas?
Vea el código a continuación
import arcpy, os
from arcpy import env
try:
# Local variables:
inTable = arcpy.GetParameterAsText(0)
outWKSpace = arcpy.GetParameterAsText(1)
# Process: Add Field
arcpy.AddField_management(inTable, "cat", "TEXT", "", "", "200", "", "NULLABLE", "NON_REQUIRED", "")
flist = arcpy.ListFields(inTable, '', 'String')
fieldname = ''
for field in flist:
fieldname = flist.pop(0)
arcpy.CalculateField_management(inTable, "cat", "!Sub_Batch!+\" \"+ !"+ fieldname.name +"!", "PYTHON_9.3", "")
outTable = outWKSpace + "\SUM_" + fieldname.name
table2 = arcpy.Frequency_analysis(inTable, outTable, "cat", "")
intCount = arcpy.GetCount_management(outWKSpace + "\SUM_" + fieldname.name)
arcpy.AddMessage(fieldname.name + ' records = ' + str(intCount))
except Exception, e:
import traceback
map(arcpy.AddError, traceback.format_exc().split("\n"))
arcpy.AddError(str(e))