Il modo più semplice che conosco è usare il pacchetto "child_process" che viene fornito con il nodo.
Quindi puoi fare qualcosa del tipo:
const spawn = require("child_process").spawn;
const pythonProcess = spawn('python',["path/to/script.py", arg1, arg2, ...]);
Quindi tutto quello che devi fare è assicurarti di essere import sys
nel tuo script Python, e quindi puoi accedere arg1
usando sys.argv[1]
, arg2
usando sys.argv[2]
e così via.
Per rimandare i dati al nodo basta fare quanto segue nello script python:
print(dataToSendBack)
sys.stdout.flush()
E quindi il nodo può ascoltare i dati usando:
pythonProcess.stdout.on('data', (data) => {
// Do something with the data returned from python script
});
Poiché ciò consente a più argomenti di essere passati a uno script tramite spawn, è possibile ristrutturare uno script Python in modo che uno degli argomenti decida quale funzione chiamare e l'altro argomento venga passato a quella funzione, ecc.
Spero fosse chiaro. Fammi sapere se qualcosa ha bisogno di chiarimenti.