You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jupyter Lab中用Python调用KNIME工作流并传递文件名

解决方案

一、修改KNIME工作流配置

  • 添加工作流参数传递文件名:
    1. 打开你的KNIME工作流,点顶部菜单栏的File > Workflow Parameters。
    2. 点Add按钮,新建一个字符串类型的参数,命名为input_file_path,可以设个默认路径方便测试。
  • 绑定文件读取节点到参数:
    1. 双击CSV Reader(或你用的文件读取节点),在文件路径栏点右侧的**...,选择Use Workflow Parameter**,选中刚才创建的input_file_path。
  • 配置结果输出:
    1. 在统计节点的输出端口接一个CSV Writer节点,设置好输出文件的路径(比如/knimedir/knime_result.csv),也可以把输出路径也做成工作流参数,更灵活。
    2. 确认所有节点连接正常,保存工作流。

二、调整Python代码

你之前用data_table_inputs无效是因为这个属性只针对带KNIME Python节点或Container Input/Output节点的工作流,普通节点没有暴露这类交互端口。正确的做法是通过工作流参数传文件名,执行后读取KNIME生成的输出文件:

import pandas as pd
import knime

# 配置KNIME和工作空间路径
knime.executable_path = '/Applications/KNIME 5.1.1.app/Contents/MacOS/Knime'
workspace = '/knimedir/knime-workspace'
workflow = 'testworflow'

# 定义要传递的输入文件和KNIME输出文件路径
input_file = "/knimedir/bankds.csv"
output_file = "/knimedir/knime_result.csv"

# 加载并执行工作流
with knime.Workflow(workflow_path=workflow, workspace_path=workspace) as wf:
    # 给KNIME工作流传参数
    wf.parameters["input_file_path"] = input_file
    # 如果输出路径也设了参数,同样在这里赋值
    # wf.parameters["output_file_path"] = output_file
    wf.execute()

# 读取KNIME输出的结果
result_df = pd.read_csv(output_file)
print(result_df)

补充:无文件中转的方案

如果不想通过文件传递数据,可以给KNIME工作流加Container Input和Container Output节点:

  1. 加一个Container Input节点,设置输入类型为表格;
  2. 把Container Input的输出连到你的过滤节点;
  3. 在统计节点后加一个Container Output节点;
  4. 这样就可以直接用wf.data_table_inputs[0] = df传数据,wf.data_table_outputs[0]获取结果,不用文件中转。

内容的提问来源于stack exchange,提问作者nik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 21:43:14