2016-02-05 147 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读取器节点(正如您在许多示例中所看到的那样) 。 –

相关问题