Tengo un servidor de nodos que ejecuta un script de python externo a través de
child_process execFile()
No tengo problemas para ejecutarlo con un número conocido de argumentos, simplemente lo paso como
const { execFile } = require('node:child_process'); const child = execFile('python', [conf.default.python_dir + "/script.py", arg1, arg2, arg3, arg4], (error:string, stdout:string, stderr:string) => { if (error) { throw error; } console.log(stdout); });Sin embargo, necesito cambiar el número de argumentos porque no sé cuántos elementos van a tener mis datos. ¿Cómo puedo pasar todos los elementos de una matriz (con longitud variable) a este script de Python (como argumentos)?
No tengo acceso a la secuencia de comandos de python, pero la secuencia de comandos de python idealmente puede leer una cantidad ilimitada de argumentos y solo puedo pasar argumentos a través de la línea de comandos
Usando la operación de propagación para distribuir matrices ( ... ) puede crear una función que acepte una cantidad ilimitada de argumentos y distribuir esos argumentos en el execFile
const { execFile } = require('node:child_process'); function execFileWithArgs(...args) { const child = execFile('python', [conf.default.python_dir + "/script.py", ...args], (error:string, stdout:string, stderr:string) => { if (error) { throw error; } console.log(stdout); }); } execFileWithArgs("unlimited","arguments","here",":)")