FAQ
ArcPy (ArcMap): ワークスペース内のフィーチャクラスのフィールド名を一括変更する

ナレッジ番号:3008 | 登録日:2023/05/29 | 更新日:2024/11/21

概要

Python スクリプトを使用して、ワークスペース内のフィーチャクラスのフィールド名を一括で変更するサンプルプログラムをご紹介いたします。

サンプル コード

フィールド名にフィーチャクラス名が含まれている場合は、それを除外する

# ArcPy サイト パッケージ、os モジュールをインポートします。
import arcpy, os

# ワークスペースを設定します。
ws = r"D:\FAQ\FCs.gdb"
arcpy.env.workspace = ws

# フィーチャクラス数分ループします。
fcList = arcpy.ListFeatureClasses()     
for fc in fcList:
    fieldList = arcpy.ListFields(fc)
    # フィールド数分ループします。
    for field in fieldList:
        # フィーチャクラス名を含むフィールド名があるかチェックします。
        if field.name.find(fc) != -1:
            newField = field.name.replace((fc + "_"),"")
            # さらに、OBJECTIDなどの必須フィールドと重複しないかチェックします。
            if newField != "OBJECTID" and newField != "Shape_Area" and newField != "Shape_Length":
                print newField + u"にリネームします"
                # [フィールドの変更] を実行
                arcpy.AlterField_management(fc, field.name,newField)
    del fc,field

フィールド名をエイリアス名に変更する

# ArcPy サイト パッケージ、os モジュールをインポートします。
import arcpy, os

# ワークスペースを設定します。
ws = r"C:\gis_work\JoinTable\Out.gdb"
arcpy.env.workspace = ws

# フィーチャクラス数分ループします。
fcList = arcpy.ListFeatureClasses()
for fc in fcList:
    fieldList = arcpy.ListFields(fc)
    # フィールド数分ループします。
    for field in fieldList:
        # OBJECTIDなどの必須フィールドと重複しないかチェックします。
        if field.required == 0:
            # 必須フィールドでなければ、フィールド名をエイリアス名に変更します。
            newField = field.name.replace(field.name,field.aliasName)
            print newField + u"にリネームします"
            # [フィールドの変更] を実行します。
            arcpy.AlterField_management(fc, field.name,newField)
    del fc,field

免責事項

こちらのサンプルはあくまでもコーディングの見本であり、実行時に発生したエラーの対処方法につきましては、サポート対象外とさせていただきます。また、操作方法やソースコードに関するご質問は別途有償の開発者サポート契約にてご対応させていただきます。なお、コードを実行して生じたいかなる損害についても弊社では責任を負いかねます。

メタデータ

種類

製品