将muliple参数传递给从node.js生成的python脚本

将muliple参数传递给从node.js生成的python脚本,node.js,spawn,Node.js,Spawn,我正试图在Node.JS中生成一个python脚本。python脚本接受多个文件路径作为参数。此命令可用于: python3 script.py 'path1' 'path2' 'path3' 在节点中,我得到一个带有路径的var: args = ["path1", "path2", "path3"] 但当我尝试生成脚本时: var spawn = require("child_process").spawn; var pyspawn = spawn( 'python3', [pyscr

我正试图在Node.JS中生成一个python脚本。python脚本接受多个文件路径作为参数。此命令可用于:

python3 script.py 'path1' 'path2' 'path3'
在节点中,我得到一个带有路径的var:

args = ["path1", "path2", "path3"]
但当我尝试生成脚本时:

var spawn = require("child_process").spawn;
var pyspawn = spawn(
  'python3', [pyscript.py, args]
);
但这似乎发出了命令:

python3 script.py [path1,path2,path3]
通过修补各种concat、join和tostring,我可以得到如下内容:

python3 script.py "'path1' 'path2' 'path3'"
。。。但是我想我的一生都不知道怎么做,我想这可能就是你想要的

unshift方法将一个或多个元素添加到数组的开头,并返回新数组的新长度

请尝试以下操作:

const spawn = require("child_process").spawn;
const pyFile = 'script.py';
const args = ['path1', 'path2', 'path3'];
args.unshift(pyFile);
const pyspawn = spawn('python3', args);

pyspawn.stdout.on('data', (data) => {
    console.log(`stdout: ${data}`);
});

pyspawn.stderr.on('data', (data) => {
    console.log(`stderr: ${data}`);
});

pyspawn.on('close', (code) => {
    console.log(`child process exited with code ${code}`);
});
我想这可能就是你要找的

unshift方法将一个或多个元素添加到数组的开头,并返回新数组的新长度

请尝试以下操作:

const spawn = require("child_process").spawn;
const pyFile = 'script.py';
const args = ['path1', 'path2', 'path3'];
args.unshift(pyFile);
const pyspawn = spawn('python3', args);

pyspawn.stdout.on('data', (data) => {
    console.log(`stdout: ${data}`);
});

pyspawn.stderr.on('data', (data) => {
    console.log(`stderr: ${data}`);
});

pyspawn.on('close', (code) => {
    console.log(`child process exited with code ${code}`);
});

明亮的我对此开了个玩笑,但从来没有这样做过——在outgo的列表中包括pyfile!明亮的我对此开了个玩笑,但从来没有这样做过——在outgo的列表中包括pyfile!