专业的JAVA编程教程与资源

网站首页 > java教程 正文

Node.js如何调用Python脚本?(nodejs 调用python代码)

temp10 2024-09-22 10:09:11 java教程 8 ℃ 0 评论

Node.js比较适合执行IO密集的操作,不擅长数据处理等CPU密集的操作。

而Python则比较擅长数据处理,且有很多好用的工具和计算库。

Node.js如何调用Python脚本?(nodejs 调用python代码)

用Node调用Python,就成为一种不错的实用组合,在日常工作中是非常有用的。

?

??

?

这里简单记录一下,Node如何调用Python。使用Node的child_process?库,可以创建并管理子进程。其具体函数为spawn?。

Node示例代码如下:

const spawn=require('child_process').spawn
const py = spawn('python',['a.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脚本a.py代码如下:

import time
print('python start',flush=True)
time.sleep(10) #等待10秒
print('python end',flush=True)

?

用Node执行js脚本后,由于js都是异步操作,因此会执行语句打印“start…………”和“end.”。

Node父进程会等待Python子进程执行完成。

因为监听了stdout,当Python子进程打印到stdout的内容,会被Node父进程接受并显示。

因为监听了close消息,当Python子进程退出时,Node父进程也会监听到退出信号。

??

使用Node.js调用Python,一定程度上可以弥补Node.js缺乏计算密集能力的不足。同样的方式,也可以形成Node.js+Java等组合,进一步扩大了Node.js的使用范围。

?

参考:

child_process 子进程 | Node.js API 文档 (nodejs.cn)

?

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表