JS运行python并获取输出

68 阅读1分钟

1、读取python文件

const spawn=require('child_process').spawn
const py = spawn('python',['t.py'])

console.log('start…………')

py.stdout.on('data',function(res){
    let data = res.toString();
    console.log('stdout: ',data)
})
py.stderr.on('data',function(res){
    let data = res.toString();
    console.log('stderr: ',data)
})
py.on('close', (code) => {
  console.log(`子进程退出:退出代码code ${code}`);
});

console.log('end.')

python文件

import time

print(99*99,flush=True)

time.sleep(10)  #等待10秒

print(88*88,flush=True)

2、写入python文件并运行

const spawn=require('child_process').spawn
const fs = require('fs')
const path = require('path')
let file = path.resolve(__dirname, './test.py')
const num = 190
let data = `print(${num})`
// 异步写入数据到文件
// fs.writeFile(file, JSON.stringify(data, null, 4), { encoding: 'utf8' }, err => {})
fs.writeFile(file, data, { encoding: 'utf8' }, err => {})

const pys = spawn('python',['test.py'])
pys.stdout.on('data',function(res){
  let data = res.toString();
  console.log('testOut: ',data)
})