Що мені потрібно зробити:
- перейменувати ім’я поля таблиці / класу функцій
- скопіюйте всі значення в нове поле
Поки я робив такий код, як підказує @ 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-аналізатор) або знаками оклику (Python parser).