Para invocar um script Python dentro do NodeJS, basta utilizar o spawn
do child_process
const { spawn } = require('child_process');
const path = require('path');
const util = require('util');
const pythonProcess = spawn(
'python',
[path.resolve(__dirname, './rename_dirs.py')],
{
cwd: 'D:\\python',
},
);
pythonProcess.stdout.on('data', (data) => {
const textChunk = data.toString('utf8'); // buffer to string
util.log(textChunk);
});
import os
import sys
def main():
print('Enviar dados para o NodeJS')
sys.stdout.flush()
if __name__ == '__main__':
main()
NOTAS:
- Caso queira passar parâmetros para o script Python, basta passar mais strings no array (segundo parametro do método spawn)
- Para que a textChunk receba a saída do código python, no script
rename_dirs.py
, é necessário executar o comandosys.stdout.flush()
após oprint('enviar dados para o NodeJS')