Những gì tôi cần làm:
- đổi tên trường của bảng / lớp đối tượng
- sao chép tất cả các giá trị sang trường mới
Cho đến nay tôi đã thực hiện theo mã như @ tác phẩm nghệ thuật21 gợi ý:
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)
Làm cách nào tôi có thể ánh xạ field.type
tới AddField_management
loại trường của phương thức? Và trong khi trường nằm ở giữa, sau đó trường bị xóa từ giữa và thêm vào cuối cùng. Điều đó không giống như tên trường được đổi tên.
Có giải pháp nào tốt hơn giúp tôi làm những việc này không?
old_field
một tên biến hoặc tên thực tế của trường cũ? Nếu đó là tên biến, bạn cần sử dụng định dạng chuỗi hoặc nối chuỗi để bọc giá trị của biến bằng dấu ngoặc (trình phân tích cú pháp VB) hoặc dấu chấm than (trình phân tích cú pháp Python).