私は何をする必要がありますか:
- テーブル/フィーチャクラスのフィールド名を変更する
- すべての値を新しいフィールドにコピーする
これまでのところ、@ 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パーサー)で囲む必要があります。