2016-02-05 151 views
0

這似乎是一個相當簡單的問題,但我找不到一個直接的問題。Knime - 如何使用路徑輸入和輸出作爲變量

場景 我在Knime中有一個工作流程,它讀取文件(excel),處理並輸出到多個文件。輸入文件和輸出文件位於相同的文件夾中,並且其文件夾與knimeworkflow所在的文件夾不同。

我想在幾個不同的文件夾中運行這個worflow。每個文件夾具有相同的輸入文件,並且輸出文件將始終具有相同的名稱。 現在,我需要手動更改每個輸入/輸出節點中每個不同文件夾的文件夾路徑。

可能的解決方案 變量與文件夾的路徑。要在其他文件夾上運行工作流程,我只會更改該變量。這是可能的嗎?怎麼樣?

回答

1

您可以使用Java Edit Variable節點將相同的文件名附加到包含實際文件夾路徑(用於輸入和輸出文件)的流變量。

不知道如何更改輸入文件夾,如果手動完成,可以使用QuickForms節點進行選擇(來自Labs for Wrapped節點)。對於文件夾內的多個文件夾,可以使用List Files節點。

要使用流量變量設置參數,首先必須爲它們指定一個值,之後您可以在每個節點的流量變量選項卡中輸入adjust the values

+0

我用文件夾的路徑創建了一個名爲「PATH」的worfflow變量。並嘗試將其用作XLS讀取器節點的流變量中的XLS_Locationa。但沒有奏效。注意:我是knime的基本用戶.... – saxo

+0

您需要使用類似於以下代碼的Java編輯變量節點: 'out_xlsPath = c_PATH +「/yourExcelFile.xls」;'創建一個流變量匹配你的xls文件的路徑,而不是它的文件夾。現在,您可以在XLS Reader節點中使用該流變量。 –

0

的XLS閱讀器節點不能使用一個變量作爲輸入(來自CSV進口商diferrent,例如)。 因此,我手動選擇輸入文件並將XLSLocation作爲變量傳遞給Java編輯變量。在這裏,我對輸入文件的路徑進行子串處理,並連接輸出文件的名稱。那些輸出作爲一個變量,然後在輸出節點上使用。

+0

不僅僅是CSV導入程序,但是可以通過流程變量選項卡調整_every_節點(具有可修改的設置),而不僅僅是那些在常規設置選項卡上具有特殊按鈕的節點。 –

+0

但是,如何做到這一點?使用特殊的語法? – saxo

+0

不,沒什麼特別的。您需要像在解決方案中一樣創建一個流變量(如使用Java編輯變量),進入XLS Reader節點的「Flow Variables」選項卡,然後從下拉菜單中選擇除了「XLS_LOCATION」選項之外的流變量創建。 (請注意,流變量需要一個路徑,而不是一個URI,以防CSV導入程序所期望的情況。)需要使用紅線將流變量連接到XLS讀取器節點(正如您在許多示例中所看到的那樣) 。 –

相關問題