내가해야 할 일:
- 테이블 / 피처 클래스의 필드 이름 바꾸기
- 모든 값을 새 필드에 복사
지금까지 @ 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 파서)로 래핑해야합니다.