Cách tốt nhất để làm điều đó là sử dụng Field Mappings. Tôi đã vật lộn với tính năng này của phần mềm ESRI trong nhiều năm, nhưng cuối cùng tôi cũng hài lòng với giải pháp này. Về cơ bản, bạn chỉ có thể tạo một bản sao của Lớp tính năng của mình với các trường được sắp xếp lại vĩnh viễn bằng cách sử dụng arcpy.FieldMappings . Tất cả các dữ liệu được thực hiện là tốt. Khi tập lệnh hoàn tất, chỉ cần đổi tên Lớp tính năng cũ của bạn thành myFeatureClass_old và tập lệnh mới của bạn thành myFeatureClass!
Đây là kịch bản, nó rất đơn giản:
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)