【AlteryxTips】複数のディレクトリ(フォルダ)のファイルを一気に読み込む

Alteryxで複数のディレクトリのファイルを一気に読み込む方法を紹介します

ディレクトリツールは複数ファイルを読み込む際に使うことができますが、例えば、Cドライブ直下にある複数フォルダから読み込む場合、ディレクトリツールでCドライブ自体を指定すると大量のファイルリストを読み込むことになり、非常に時間がかかります(以下のような設定で可能です)。

Cドライブ直下をすべて読み込む

今回は、ディレクトリツールをマクロに組み込むことで、離れた場所にある複数のディレクトリを一度に読み込む方法を紹介します(どこかの単一のフォルダ直下にある複数フォルダを読み込むような場合は、上の設定でディレクトリをうまく指定すればこの記事にあるようなことをする必要はありません)。

概念図

複数ディレクトリからファイルリストを読み込む際、通常であれば複数のディレクトリツールを使うところですが、マクロ化することで、ディレクトリリストから一気にファイルリストを作成することができます。ファイルリストさえできてしまえば、あとは通常の複数ファイル入力と同じように読み込むことができます。

Info

ディレクトリツールやファイル入力ツールのようにワークフローの出発点になるようなツールをワークフローの途中に挟み込みたいような場合は、今回紹介するような方法でマクロ化することでワークフロー内で利用することが可能になります。

具体的なやり方

複数のディレクトリから一気にファイルリストを得るためには、ディレクトリツールをバッチマクロに組みこんで実現します、コントロールパラメーターツールでディレクトリツールの「ディレクトリ」をコントロールします。

マクロの方針

※コントロールパラメーターツールを組み込んだ時点でバッチマクロという扱いになります

マクロの内容

実際のマクロの中身は以下のようになります。

マクロ(全体)

①コントロールパラメーターツール

コントロールパラメーター

基本的に設定は不要です。コントロールパラメーターとして読み込むフィールド名を指定する部分ですが、ラベルを変更することができます(わかりやすいものを記載しましょう)。

②アクションツール

ディレクトリツールをマクロ外部から制御します。

アクションツール設定

アクションタイプを選択

「値を更新」を指定します(既定値です)。

更新する値または属性

「Directory - Value="~~~"」を指定(選択)します。

③ディレクトリツール

「ディレクトリ」はフォルダ内のファイルリストを作成するツールです。今回は、アクションツール経由でコントロールパラメータの内容で書き換えています。

ディレクトリツール設定

「ディレクトリ」はコントロールパラメーターで値を書き換えることになるため、ここで設定するディレクトリは適当なもので構いません。

「ファイル指定」、「サブディレクトリを含める」はそれぞれお好きなものを指定してください。

※ディレクトリツール自体の詳細は以下の記事を参照ください。

④セレクトツール

ディレクトリ読み込みではFullPathのみあれば十分なので不要な項目を消してしまいましょう。

セレクトツール

⑤マクロアウトプットツール

設定不要です。

 

設定は以上となるので、好きな名前をつけて保存してください(yxmc形式で保存してください)。

マクロを使ったサンプルワークフロー

今回は、複数のディレクトリにファイルを保管していると想定しています。そのディレクトリのパスのリストをテキスト入力ツールなどで読み込むようにしています(もちろん、ExcelファイルやCSVファイルでリストとして作成しておき、ファイル入力ツールで読み込むことも可能です)。

実際に先程作成したマクロを利用したワークフローは以下のようになります。

サンプルWF

①テキスト入力ツール

テキスト入力ツールに今回読み込みたいファイルが存在しているディレクトリをリストで作成しておきます。

テキスト入力

②複数フォルダ入力マクロ

ディレクトリリスト(パス)のフィールドを指定します。

今回のマクロ設定

③動的入力ツール

動的入力ツールは、テンプレートを指定しておくことで、そのテンプレート通りの設定でファイルパスを動的に変更しながら複数のファイルを一気に読み込むことのできるツールです。

動的入力

データ入力ソーステンプレート

実際に読み込むファイルをテンプレートとして指定します。

データソースのリストを読み込む

フィールドは、マクロから出力される「FullPath」がファイルのフルパスになりますので、これを選択します。

アクションは「ファイルパス全文を変更」を選択します。

なお、ダイナミックインプットの代わりに以前紹介したCSVを読み込むようなマクロでファイル読み込みを行うことも可能です。

まとめ

複数の置き場所(ディレクトリ)が設定されているようなファイルをディレクトリリストに基づいて一気に読み込む方法を紹介しました。

ワークフローの途中でファイルを保存して、保存したファイルをコピーしたりするような際にも活用できるかと思います。

保存したファイルのリスト作成など、応用の幅は広いと思います。

サンプルワークフロー

複数ディレクトリ読み込みサンプルWF

SampleData

関連記事

 

※Alteryx Designer 2019.3.2.15763時点の内容となります

Alteryxの導入はぜひKCMEで!

セルフサービスデータ分析ツール「Alteryx」は4週間無償トライアルが可能です。

製品に対する操作方法、技術的な質問などは導入前・導入後に関わらずメールにてお答えします。また、Alteryxを用いた環境構築、開発、ヘルプデスク対応、ハンズオン、トレーニング、ワークフロー作成なども承りますので、お気軽にご相談ください。

おすすめの記事