サマリー
上から下または下から上にツリーを移動することによって、ディレクトリ構造とデータベース構造内のデータ名を返します。 各ディレクトリまたはワークスペースから、ディレクトリ パス、ディレクトリ名、ファイル名の 3 つの組み合わせが得られます。
説明
os モジュールには os.walk 関数が含まれています。これを使用して、ディレクトリ ツリーを移動し、データを検索することができます。 os.walk 関数はファイルベースで、ジオデータベース フィーチャクラス、テーブル、ラスターなどのデータベース コンテンツは認識しません。 パフォーマンス向上のため、ファイルベース形式には os.walk を使用することをお勧めします。 arcpy.da.Walk 関数を使用して、データをカタログ化できます。
構文
Walk (top, {topdown}, {onerror}, {followlinks}, {datatype}, {type})
パラメーター | 説明 | データ タイプ |
top | The top-level workspace that will be used. | String |
topdown | If topdown is True or not specified, the tuple for a directory is generated before the tuple for any of its workspaces (workspaces are generated trom the top down). If topdown is False, the tuple for a workspace is generated after the tuple for all of its subworkspaces (workspaces are generated from the bottom up). When topdown is True, the dirnames list can be modified in place, and Walk will only recurse into the subworkspaces whose names remain in dirnames. This can be used to limit the search, impose a specific order of visiting, or inform Walk about directories the caller creates or renames before it resumes Walk again. Modifyingdirnames when topdown is False is ineffective, because in bottom-up mode, the workspaces indirnames are generated before dirpath is generated. (デフォルト値は次のとおりです True) | Boolean |
onerror | Errors are ignored by default. The onerror function will be called with an OSError instance. This function can be used to report the error and continue with Walk or raise an exception to cancel. 注意:The file name is available as the filename attribute of the exception object. (デフォルト値は次のとおりです None) | Function |
followlinks | By default, Walk does not visit connection files. Set followlinks to True to visit connection files. (デフォルト値は次のとおりです False) | Boolean |
datatype | Specifies the data type that will be used to limit the results.
Multiple data types are supported if they're entered as a list or tuple.
(デフォルト値は次のとおりです None) | String |
type | Specifies whether feature and raster data types will be further limited by type.
Valid feature types are the following:
Valid raster types are the following:
Multiple data types are supported if they're entered as a list or tuple.
(デフォルト値は次のとおりです None) | String |
データ タイプ | 説明 |
Generator | ワークスペース、ディレクトリ名、ファイル名の 3 つの組み合わせが得られます。
注意:リスト内の名前には、ベース名のみが含まれます。パス コンポーネントは含まれません。 dirpath のファイルまたはディレクトリの (先頭から始まる) 絶対パスを取得するには、os.path.join(dirpath, name) を使用します。 |
コードのサンプル
Walk 関数を使用して、ワークスペース内のポリゴン フィーチャクラスをカタログ化します。
コードには、ファイル ジオデータベース内のフィーチャ データセットのポリゴン フィーチャ クラスが含まれます。
import arcpy
import os
workspace = "c:/data"
feature_classes = []
walk = arcpy.da.Walk(workspace, datatype="FeatureClass", type="Polygon")
for dirpath, dirnames, filenames in walk:
for filename in filenames:
feature_classes.append(os.path.join(dirpath, filename))
Walk 関数を使用して、ラスター データをカタログ化します。 back_up という名前のフォルダー内のラスターは無視されます。
import arcpy
import os
workspace = "c:/data"
rasters = []
walk = arcpy.da.Walk(workspace, topdown=True, datatype="RasterDataset")
for dirpath, dirnames, filenames in walk:
# Disregard any folder named 'back_up' in creating list of rasters
if "back_up" in dirnames:
dirnames.remove('back_up')
for filename in filenames:
rasters.append(os.path.join(dirpath, filename))