2022年 11月 6日

JavaScript调用Python程序

JavaScript调用Python程序

文章目录

    • JavaScript调用Python程序
      • 简介
      • JavaScript代码
      • Python代码
      • 运行结果展示

简介

在有些情况下需要使用不同的语言来完成一个项目,因此就有可能出现不同语言的程序之间的相互调用,本文主要介绍如何使用JavaScript调用Python程序并且实现参数的传递。

JavaScript代码

JavaScript代码属于主程序,在里面用到了child_process这个包,使用这个包可以运行命令行,也就相当于运行了Python程序,具体的代码如下所示:

const exec = require('child_process').exec


const p0 = new Promise((resolve, reject)=>{
    let v0 = "i am js"
    resolve(v0)
})
p0.then((value)=>{
    console.log(value)
}).then(()=>{
    let v1 = 'success'
    let v2 = 'test'
    let v3 = 10
    let v4 = 47
    let cmdStr = 'python3 mytest0.py' + ' ' + v2 + ' ' + v3 + ' ' + v4    
    exec(cmdStr, (err, stdout, stderr)=>{
        if(err){
            console.log(stderr)
        }else{
            console.log(stdout)
        }
    })
    return v1
}).then((v1)=>{
    setTimeout(()=>{
        console.log(v1)
    }, 5000)
}).catch((err)=>{
    console.log(err)
}).finally(()=>{
    
})


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

Python代码

Python程序是被调用的程序,这里为了简单期间,只是写了一个简单的程序作为示例:

import sys


v0 = sys.argv[1]
v1 = eval(sys.argv[2])
v2 = eval(sys.argv[3])


def main():
    print('i am python')
    print(v0)
    print(v1 + v2)


if __name__ == '__main__':
    main()
    

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

运行结果展示

运行上述JavaScript代码,所得到的结果如下图所示:
在这里插入图片描述