はじめに
さて、そろそろ中級編も終わりにしていきたいと思います。最後は、ファイルパスを操るというシリーズで行っていきたいと思います。これらをマスターすることで、他人にワークフローを共有するときに、すべてのReader/Writer Nodeの設定を受け取った人がいちいち再設定する必要が最小限に抑えられるようになります。
第一回はフォルダを作るNodeを扱っていきます。
このテーマは変数を扱えることが前提となっています。
今回のテーマ ~Create Directory~
今回は日付のフォルダを作っていきます。
Workflowは下記からダウンロードできます。
覚えてほしいこと
Directoryは一個前までのフォルダパス、Nameが作りたいフォルダ
やりたいこと
実行日ごとにフォルダを作って、そこにOutputをアーカイブしていくシステムを作っていきたいと思います。ファイル名にも日付を入れる必要は実際ありませんが、練習のためにファイル名にも日付を入れたいと思います。
今日はそのうちのフォルダ作成の部分までです。
Create Directory の使い方
Directoryを、共有フォルダにしておけば誰が実行しても同じInputファイル、Outputファイルが作れるようになります!
KNIME v4.3からCreate FolderにNodeが変わりました。引き続きCreate DirectoryもLegacy Nodeとして使用はできます。Create FolderのConfigurationはUploadされているワークフローから参照ください。
Workflow
今日の日付は変数で受け渡します。
Confirm - Before After
まず、Date&Time Configurationで今日の日付を"Today"という変数名で取得しています。それをフォルダ名にしていきます。
Configure
今回は変数を使うのでFlow Variablesの部分も設定します。設定項目自体は単純化と思います。
Step1 - Location 一個上の階層までのパスを指定
日付のフォルダを作成したいフォルダ(一個上までの階層)を指定します。
今回は、"C:\Users\makky\Downloads\data"という階層のフォルダになります。やりたいことの図でいうと、”dataという”フォルダの下にの部分です。
また、今回は扱いませんが相対パスも使用できます。相対パスを使用することによってServer上で動かすときや、人に共有した時にでも受け取り側で設定の変更がなく共有できたりします。
Step2 - Name 作成するフォルダ名を指定
Nameで今回作成するフォルダ名を入れます。今回は変数を使いたいので、Flow Variablesのタブのnameの部分で、Date&Time Configuration Nodeで作成したTodayという変数を指定しています。
ここが、やりたいことでいう日付のフォルダを作成の部分ですね。
また、KNIMEの仕様?で何かnameの部分に仮の文字を入れないと動いてくれないので、今回はtodayという仮の文字をOptionsの方にも入れています。
もしフォルダ名が固定(変数を指定しない)の場合は、"today"というフォルダが作られることになります。
Step3 - Variable name 出力変数名の指定
最後に、作ったフォルダパスを格納する変数の名前を指定します。
また、Optionにある"Abort if directory already exists"の意味は、チェックを入れると、すでにフォルダが存在している場合にはエラーとして実行を止めるという意味です。
おわりに
お盆開けてしまいましたね。すべての記事を読んでくださった方がいらっしゃるかは分かりませんが、きっとここまでやっていただいた方はもうすでにKNIMEをマスターしているといっていいのではないでしょうか。こんな風に使ってみたなどの事例が共有できるといいなーと思います。積極的に自動化してサボっていきましょう!
余談
お盆だー、旅行して自然を味わいたい!ということでおススメしたいのが「WOOD JOB!(ウッジョブ)~神去なあなあ日常~」です。林業というあまり触れることのない世界について書いた映画で、見てるだけで大自然にいるような感覚になります。
参考リンク
- KNIME公式Node Pit(英語):
- KNIME Example Workflow(英語):