在Python中使用多个参数执行Knime(subprocess.run)

问题描述 投票:0回答:1

大家好,

我正在寻找一种在批处理模式下在Python中执行KNIME工作流程的方法(无需打开KNIME的GUI,https://www.knime.com/faq#q12)经过几个小时的尝试,我问你是否可以在这种情况下帮助我:

当我运行python文件时,它会打开Knime exe,几秒后knime GUI也会打开。不幸的是,exe并没有激发工作流程(用于测试工作流应该读取csv文件并将其保存在另一个文件目的地)

这是python 3.7中的实际代码:

import subprocess
subprocess.run(["C:/Program Files/KNIME/knime.exe","-consoleLog","-nosplash","-noexit","-nosave","-reset","-application org.knime.product.KNIME_BATCH_APPLICATION","-workflowDir= C:/Users/jssch/knime-workspace/testexecute"]

当我在命令行中粘贴以下代码时代码正常工作并正确执行(它只是移交参数并且不会打开knime GUI):

C:\Program Files\KNIME\knime.exe" -consoleLog -noexit -nosplash -nosave -reset -application org.knime.product.KNIME_BATCH_APPLICATION -workflowDir="C:\Users\jssch\knime-workspace\testexecute"

感谢您的帮助!

python cmd subprocess knime
1个回答
1
投票

我认为你在-application部分犯了一个错误,他们应该在不同的字符串中。 -workflowDir= C:/ ......似乎也有额外的空间。

有问题的部分:

"-application org.knime.product.KNIME_BATCH_APPLICATION"

它应该是:

"-application", "org.knime.product.KNIME_BATCH_APPLICATION"

也许你不想要-noexit论点。

全部一起:

import subprocess
subprocess.run(["C:/Program Files/KNIME/knime.exe", "-consoleLog", "-nosplash", "-nosave", "-reset", "-application", "org.knime.product.KNIME_BATCH_APPLICATION", "-workflowDir=C:/Users/jssch/knime-workspace/testexecute"]

(我通常更喜欢没有空格的路径,奇怪的字符,我会从不同的路径使用KNIME安装,虽然这也很好。)

© www.soinside.com 2019 - 2024. All rights reserved.