ฉันต้องทำอะไร:
- เปลี่ยนชื่อฟิลด์ของคลาสตาราง / คุณสมบัติ
- คัดลอกค่าทั้งหมดไปยังฟิลด์ใหม่
จนถึงตอนนี้ฉันได้ทำโค้ดต่อไปนี้ตามที่ @ artwork21 แนะนำ:
import sys
import traceback
import arcpy
from arcpy import env
## ARGUMENTS
# argv[1] = input table/feature class path
# argv[2] = input old field name
# argv[3] = input new field name
path = sys.argv[1]
oldFieldName = sys.argv[2]
newFieldName = sys.argv[3]
env.overwriteOutput = True
fields = arcpy.ListFields(path)
for field in fields:
if field.aliasName == oldFieldName:
if not oldFieldName == newFieldName:
fieldType = field.type
# Add new field
arcpy.AddField_management(path, newFieldName, fieldType)
#Calculates the new field based on old field values
arcpy.CalculateField_management(path, newFieldName, "!"+oldFieldName+"!", "PYTHON", "")
# Delete the old field (if necessary)
arcpy.DeleteField_management(path, oldFieldName)
ฉันfield.type
จะแมปกับAddField_management
ประเภทฟิลด์ของวิธีได้อย่างไร และในขณะที่สนามอยู่ในสถานที่กลางจากนั้นเขตข้อมูลที่ถูกลบจากกลางและเพิ่มไปที่ล่าสุด ดูเหมือนจะไม่เปลี่ยนชื่อเป็นชื่อฟิลด์
มีวิธีแก้ปัญหาที่ดีกว่าที่ช่วยให้ฉันทำสิ่งเหล่านี้หรือไม่?
old_field
ชื่อตัวแปรหรือชื่อจริงของข้อมูลเก่าหรือไม่? หากเป็นชื่อตัวแปรคุณต้องใช้การจัดรูปแบบสตริงหรือการต่อข้อมูลเพื่อตัดค่าของตัวแปรด้วยวงเล็บ (VB parser) หรือเครื่องหมายอัศเจรีย์ (Python parser)