nodejs调用python脚本

前言

在做项目时,我遇到了一个应用场景,需要在Nodejs搭建的环境中使用Python脚本。万幸的是,万能的Nodejs为这种应用场景提供了一个很合适的接口,API参见该链接

正文

child_process模块有两个方法。分别是execexecSync,分别表示异步和同步,原理在于执行cmd命令,并且将输出重定向。
使用方法如下

// call.js
const exec = require('child_process').exec;
const execSync = require('child_process').execSync;
// 异步执行
exec('python web.py',function(error,stdout,stderr){
    if(error) {
        console.info('stderr : '+stderr);
    }
    console.log('exec: ' + stdout);
})
// 同步执行
const output = execSync('python web.py')
console.log('sync: ' + output.toString())
console.log('over')

web.py如下

# web.py
import sys

print('web')
print('aaa')

在命令行输入 node call,打印如下:

sync:web
aaa

over
exec: web
aaa

可知,对于Python脚本里的打印语句都会重定向到Nodejs脚本中,这样就实现了Nodejs与Python脚本的交互。按照这个思路,我们可以使用该API完成很多奇妙的任务,而不仅仅是与Python脚本交互

你可能感兴趣的:(nodejs)