フォルダ内で一番新しいファイルだけを読み込む方法をご紹介します
一つのフォルダの中に、作成日が違うファイルが複数あり、その中の最新のファイルだけを読み込みたい…という場合があります。毎回手動でファイルを指定することもできますが、一番新しいファイルを読み込む、というように自動化しておくと、ミス撲滅と時間の短縮に繋がります。
今回は、フォルダ内の複数のファイルの中から、一番新しい物だけを読み込む方法についてご紹介します。
ファイル名の日付が一番新しいファイルだけを読み込もう
下図の例で見てきます。
フォルダの中に、「Test_yyyyMMdd.csv」という名前で複数のCSVファイルが保存されています。この中から、ファイル名についている日付が一番新しいCSVだけを読み込んでみます。(読み込んだファイルが分かりやすいように、CSVファイルの1レコード目にはファイル名と同じ日付を入力しています。)
実際にワークフローを組んでみる
実際に、一番新しいファイルだけを読み込むフローを組んでみます。下のようなフローになります。
ツールごとにどんな設定になっているか、順に追って見ていきます。
まずは前半部分を説明します。
最初に、ディレクトリツールでフォルダに存在するCSVファイルのファイル名とフルパスの一覧を取得します(この時、セレクトツールで必要な FullPath列、FileName列 に絞っておくと見やすくなります)。
次に、正規表現ツールでファイル名の日付部分yyyyMMdd」の文字列を抽出します(上の図 Date列)。
後半の処理ですが、取得した日付を新しいもの順に並び変え、一番上に来るファイルを読み込んでいきます。
並べ替えツールで、抽出した日付を新しいもの順に並べ替え、サンプルツールで一番上の1行を取り出します。取り出した一番新しい CSVファイルの FullPath を使って、動的入力ツールでファイルを読み込みます。
これでフォルダ内の一番新しい CSVファイルを読み込むことができました。
補足
今回は正規表現ツールを使ってファイル名から日付を取得しましたが、実際のファイルの作成日や最後に編集した時間などを使うこともできます。並べ替えツールで並び替える対象を、最初のディレクトリツールで取得できる「CreationTime」や「LastWriteTime」列にすることで、一番新しく作成、編集されたファイルを読み込むことができます。
用途に合わせて、並べ替えツールのソート対象を選択してみてください。
サンプルワークフロー ダウンロード
Read_LatestFile_SampleWF fa-download
※Alteryx Designer 2019.1.6.58192時点の情報です