Le moyen le plus simple que je connaisse est d'utiliser le package "child_process" fourni avec le nœud.
Ensuite, vous pouvez faire quelque chose comme:
const spawn = require("child_process").spawn;
const pythonProcess = spawn('python',["path/to/script.py", arg1, arg2, ...]);
Ensuite, tout ce que vous avez à faire est de vous assurer que vous êtes import sys
dans votre script python, puis vous pouvez accéder à l' arg1
aide de sys.argv[1]
, en arg2
utilisant sys.argv[2]
, etc.
Pour renvoyer des données au nœud, procédez comme suit dans le script python:
print(dataToSendBack)
sys.stdout.flush()
Et puis le nœud peut écouter les données en utilisant:
pythonProcess.stdout.on('data', (data) => {
// Do something with the data returned from python script
});
Étant donné que cela permet de passer plusieurs arguments à un script à l'aide de spawn, vous pouvez restructurer un script python de sorte que l'un des arguments décide de la fonction à appeler et que l'autre argument soit transmis à cette fonction, etc.
J'espère que c'était clair. Faites-moi savoir si quelque chose doit être clarifié.