在 Python (subprocess.run) 中使用多个参数执行 Knime
Execute Knime with multiple arguments in Python (subprocess.run)
大家好,
我正在寻找一种在 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"
提前感谢您的帮助!
我认为你在 -application
部分弄错了,它们应该在不同的字符串中。 -workflowDir= C:/
... 似乎也有一个额外的 space。
有问题的部分:
"-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"]
(我通常更喜欢没有 spaces 的路径,奇怪的字符,我会使用来自不同路径的 KNIME 安装,虽然这也很好。)
大家好,
我正在寻找一种在 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"
提前感谢您的帮助!
我认为你在 -application
部分弄错了,它们应该在不同的字符串中。 -workflowDir= C:/
... 似乎也有一个额外的 space。
有问题的部分:
"-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"]
(我通常更喜欢没有 spaces 的路径,奇怪的字符,我会使用来自不同路径的 KNIME 安装,虽然这也很好。)