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

在Python中使用多个参数执行Knime(subprocess.run),python,cmd,subprocess,knime,Python,Cmd,Subprocess,Knime,大家好 我正在寻找一种在Python中以批处理模式执行KNIME工作流的方法(无需打开KNIME的GUI,) 经过几个小时的努力,我想问你是否能在这种情况下帮助我: 当我运行python文件时,它会打开Knime exe,几秒钟后,Knime GUI也会打开。不幸的是,exe没有执行工作流(为了测试工作流,应读取csv文件并将其保存在另一个文件目标中) 这是python 3.7中的实际代码: import subprocess subprocess.run(["C:/Program Files/

大家好

我正在寻找一种在Python中以批处理模式执行KNIME工作流的方法(无需打开KNIME的GUI,) 经过几个小时的努力,我想问你是否能在这种情况下帮助我:

当我运行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):


提前谢谢你的帮助

我认为您在
-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安装,尽管这也很好。)

非常感谢Gábor。现在它工作得很好!我会考虑你的建议和编辑路径。祝您有个美好的一天!
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"]