Yapmam gerekenler:
- tablo / özellik sınıfının alan adını yeniden adlandırma
- tüm değerleri yeni alana kopyala
Şimdiye kadar @ artwork21 önerdiği gibi aşağıdaki kodu yaptık:
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)
Nasıl haritalayabilirsiniz field.type
için AddField_management
yöntemin alan türü? Ve alan orta bir yerdeyken, alan ortadan silinir ve sonuncuya eklenir. Alan adı yeniden adlandırılmış gibi görünmüyor.
Bunları yapmama yardımcı olacak daha iyi bir çözüm var mı?
old_field
Değişken adı mı yoksa eski alanın gerçek adı mı? Değişken adı ise, değişkenin değerini parantez (VB ayrıştırıcısı) veya ünlem işareti (Python ayrıştırıcısı) ile sarmak için dize biçimlendirmesi veya birleştirme kullanmanız gerekir.