FAQ
ArcPy (ArcMap): フィーチャクラス内の指定したフィールドを一括で削除する方法

ナレッジ番号:2888 | 登録日:2023/05/29 | 更新日:2024/06/20

概要

Python スクリプトを使用して、フィーチャクラス内の指定したフィールドを一括で削除する方法をご紹介します。

ここでは、フィーチャクラス内の削除したいフィールドのみを取り出して、[フィールドの削除(Delete Field)] ツールのパラメータとして使用しています。指定したフィールドを取り出すのに、ArcPy の ListFields 関数を使用しています。

サンプル コード

# coding:cp932
# Purpose:     フィーチャクラス内の指定したフィールドを一括で削除します。

# ArcPy サイト パッケージをインポートします。
import arcpy

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

# List 関数を使用して、指定したフィーチャクラス内のフィールドをリスト化します。
# ここでは、第二引数に「SICHO」フィールドを指定しています。(ワイルドカード(*)を使用してフィールドをリスト化することもできます。)
inputFeatureClass = "japan_ver71"
fieldsList = arcpy.ListFields(inputFeatureClass, "SICHO")

# 空のリストを作成します。
fieldsNameList = []

# Field オブジェクトのプロパティにアクセスして、リスト内の各要素のフィールド名を取得します。
# 作成した空のリストにフィールド名を追加します。
for field in fieldsList:
    print field.name
    # 必須フィールド(ObjectID や Shape など)でない場合、リストに追加します。
    if not field.required:
        fieldsNameList.append(field.name)

# フィールド名が格納されたリストを [フィールドの削除(Delete Field)] ツールのパラメータとして使用します。
arcpy.DeleteField_management(inputFeatureClass, fieldsNameList)

免責事項

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

メタデータ

種類

製品