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

NodeJS通过命令行调用Python脚本时传递不定数量参数的方法

动态传参实现方法

child_process.execFile() 的第二个参数本身就支持接收任意长度的参数数组,不需要提前固定参数个数,直接通过数组展开语法把动态参数拼入参数列表即可。

实现代码

const { execFile } = require('node:child_process');

// 业务中拿到的动态长度参数数组,元素个数可随业务场景变化
const dynamicParams = [/* 任意数量的待传参数,顺序和Python脚本接收顺序保持一致即可 */];

// 构造执行参数:首元素固定为Python脚本路径,后续拼接所有动态参数
const execArgList = [
  `${conf.default.python_dir}/script.py`,
  ...dynamicParams
];

const child = execFile('python', execArgList, (error, stdout, stderr) => {
  if (error) {
    throw error;
  }
  console.log(stdout);
});

注意事项

  • 不要手动把所有参数拼接成单个命令字符串传给exec,execFile会自动处理参数内的空格、特殊字符转义,天然规避命令注入风险,传参逻辑和你之前固定写死arg1,arg2,arg3,arg4的效果完全一致
  • Python端通过sys.argv读取到的参数顺序,和你传入execArgList的动态参数顺序完全对应
  • 如果动态参数中包含数字、布尔值等非字符串类型,提前手动转为字符串再放入参数数组,避免隐式类型转换导致的参数值异常
  • 该方案不需要对Python脚本做任何修改,完全适配你无脚本修改权限、仅能通过命令行传参交互的限制

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 03:31:01