【问题标题】:Execute Knime with multiple arguments in Python (subprocess.run)在 Python 中使用多个参数执行 Knime (subprocess.run)
【发布时间】:2019-04-12 19:04:36
【问题描述】:

大家好

我正在寻找一种在 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】:

    我认为你在-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。现在它工作正常!我会考虑您的建议并编辑路径。祝你有美好的一天!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-13
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    相关资源
    最近更新 更多