Was ich tun muss:
- Benennen Sie einen Feldnamen einer Tabelle / Feature-Class um
- Kopieren Sie alle Werte in das neue Feld
Bisher habe ich folgenden Code ausgeführt, wie @ artist21 vorschlägt:
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)
Wie kann ich dem Feldtyp field.type
der AddField_management
Methode zuordnen? Und während sich das Feld in der Mitte befindet, wird das Feld aus der Mitte gelöscht und zum letzten hinzugefügt. Das sieht nicht so aus, als würde der Feldname umbenannt.
Gibt es eine bessere Lösung, die mir dabei hilft?
old_field
ein Variablenname oder der tatsächliche Name des alten Feldes? Wenn es sich um einen Variablennamen handelt, müssen Sie die Formatierung oder Verkettung von Zeichenfolgen verwenden, um den Wert der Variablen in Klammern (VB-Parser) oder Ausrufezeichen (Python-Parser) zu setzen.