Apa yang perlu saya lakukan:
- ganti nama bidang dari kelas tabel / fitur
- salin semua nilai ke bidang baru
Sejauh ini saya telah melakukan kode berikut seperti yang disarankan @ 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)
Bagaimana saya bisa memetakan field.type
ke AddField_management
jenis bidang metode? Dan sementara bidang di tengah, maka bidang dihapus dari tengah dan ditambahkan ke yang terakhir. Itu tidak tampak seperti jika nama bidang diubah namanya.
Apakah ada solusi yang lebih baik yang membantu saya melakukan hal-hal ini?
old_field
nama variabel atau nama sebenarnya dari bidang lama? Jika itu nama variabel, Anda perlu menggunakan pemformatan string atau gabungan untuk membungkus nilai variabel dengan tanda kurung (parser VB) atau tanda seru (parser Python).