La mejor manera de hacerlo es usar asignaciones de campo. He estado luchando con esta característica del software ESRI durante años, pero finalmente estoy contento con esta solución. Básicamente, puede hacer una copia de su Clase de entidad con los campos reordenados permanentemente usando arcpy.FieldMappings . Todos los datos se transfieren también. Una vez que se haya completado el script, simplemente cambie el nombre de su antigua Clase de entidad a myFeatureClass_old, ¡y la nueva a myFeatureClass!
Aquí está el guión, es súper sencillo:
import arcpy
'''
This is possible in python using FeatureClasstoFeatureClass with Fieldmappings. You can also rename fields at the same time.
So if you have a Feature Class with FIELD3, FIELD2, FIELD1 and you want the result to be FIELD1, FIELD2, FIELD3 then the following code should accomplish this.
'''
arcpy.env.workspace = r"C:\Users\myself\ArcData\my_geodatabase.gdb"
arcpy.env.overwriteOutput = True
input_fpath = "Lakes"
output_dpath = arcpy.env.workspace
output_fname = "Lakes_new"
fms = arcpy.FieldMappings()
fm = arcpy.FieldMap()
fm.addInputField(input_fpath,"FIELD1")
fms.addFieldMap(fm)
fm = arcpy.FieldMap()
fm.addInputField(input_fpath,"FIELD2")
fms.addFieldMap(fm)
fm = arcpy.FieldMap()
fm.addInputField(input_fpath,"FIELD3")
fms.addFieldMap(fm)
arcpy.conversion.FeatureClassToFeatureClass(input_fpath,output_dpath,output_fname,"",fms)