Yo วิธีที่ดีที่สุดที่จะทำคือใช้การแมปฟิลด์ ฉันดิ้นรนกับคุณสมบัติของซอฟต์แวร์ ESRI มาหลายปีแล้ว แต่ในที่สุดฉันก็พอใจกับโซลูชันนี้ โดยทั่วไปคุณก็สามารถทำสำเนาของคุณสมบัติของ Class ที่ทุ่งนาตับแลบอย่างถาวรโดยใช้arcpy.FieldMappings ข้อมูลทั้งหมดจะถูกนำไปใช้เช่นกัน เมื่อสคริปต์เสร็จสมบูรณ์แล้วให้เปลี่ยนชื่อ Feature คลาสเก่าของคุณเป็น myFeatureClass_old และเปลี่ยนใหม่เป็น myFeatureClass!
นี่คือสคริปต์มันตรงไปตรงมาสุด ๆ :
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)