网站首页 > java教程 正文
Node.js比较适合执行IO密集的操作,不擅长数据处理等CPU密集的操作。
而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)
?
猜你喜欢
- 2024-09-22 python实现WebService协议使用(pythonwebserver接口开发)
- 2024-09-22 玩转Termux:教你在手机上安装运行Python!
- 2024-09-22 Javaer自学python,吐槽难受的点(学了java再学python容易吗)
- 2024-09-22 实例编程:多语言语言调用Golang共享库
- 2024-09-22 Python 和 Java 基础对比 05 —— 程序的控制语句
- 2024-09-22 Python的模块导入和重载(python中模块导入的方法)
- 2024-09-22 python内置函数通过字符串的方式来执行函数代码块
- 2024-09-22 关于不同编程语言相互调用的思考(不同编程语言对接)
- 2024-09-22 Python 3.13 或将引入 JIT!(python引入包从哪里引入)
- 2024-09-22 如何使用 Python 实现网页自动化朗读?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)