我正在尝试在 Node.JS 中“生成”一个 python 脚本。python 脚本接受多个文件路径作为参数。此命令有效:
python3 script.py 'path1' 'path2' 'path3'
Run Code Online (Sandbox Code Playgroud)
在节点中,我得到了一个带有路径的 var:
args = ["path1", "path2", "path3"]
Run Code Online (Sandbox Code Playgroud)
但是当我尝试生成脚本时:
var spawn = require("child_process").spawn;
var pyspawn = spawn(
'python3', [pyscript.py, args]
);
Run Code Online (Sandbox Code Playgroud)
但这似乎发出命令:
python3 script.py [path1,path2,path3]
Run Code Online (Sandbox Code Playgroud)
修改各种 concat()s、join()s 和 toString()s,我可以得到如下内容:
python3 script.py "'path1' 'path2' 'path3'"
Run Code Online (Sandbox Code Playgroud)
......但不能为我的生活想出如何简单地做到这一点
小智 5
我认为unshift可能是你正在寻找的。
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}`);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2061 次 |
| 最近记录: |