介绍
在前端开发中,我们会经常用到一些 Python 脚本,例如数据分析、机器学习等,这时候我们可以使用 python-shell
这个 npm 包来执行 Python 脚本并获取结果。python-shell
提供了一个便捷的 API 可以让我们在 JavaScript 中调用 Python。
安装
在你的项目根目录下使用以下命令进行安装:
npm install python-shell
使用
基本用法
在你的 JavaScript 文件中,先导入 python-shell
包:
const { PythonShell } = require('python-shell');
然后使用以下代码来执行一段 Python 代码并获取结果:
PythonShell.runString('x=1+1;print(x)', null, function (err, results) { if (err) throw err; console.log('results: %j', results); });
其中第一个参数是你要执行的 Python 代码,第二个参数是相关配置(默认可以为 null
),第三个参数是回调函数,会返回执行结果。
配置项
以下是一些常用的配置项:
pythonPath
:Python 的可执行文件路径,默认为系统默认路径;pythonOptions
:Python 的命令行参数,默认为[]
;scriptPath
:Python 脚本所在的目录,默认为当前文件夹;args
:传递给 Python 脚本的参数,默认为[]
;mode
:Python 代码输入模式,默认为'text'
。
你可以在调用 PythonShell
的时候传入一个有配置项的 Object:
-- -------------------- ---- ------- ----- - ----------- - - ------------------------ ----- ------- - - ----- ------ -- ------------------------------- -------- -------- ----- -------- - -- ----- ----- ---- --------------------- ---- --------- ---
文件读写
你可以使用 fs
模块来读写文件,然后作为参数传给 Python 脚本:
-- -------------------- ---- ------- ----- - ----------- - - ------------------------ ----- -- - -------------- ----- -------- - ------------- ----- ------- - ------- -------- -------------------------- --------- ------------------------------- - ----- ---------- -- -------- ----- -------- - -- ----- ----- ---- --------------------- ---- --------- ---
在 Python 脚本中,你可以直接读取文件内容:
import sys with open(sys.argv[1], 'r') as f: content = f.read() print(content)
异步执行
如果你需要使用 async/await
或者 Promise
进行异步编程,你可以将 PythonShell
包装成一个 Promise:
-- -------------------- ---- ------- ----- - ----------- - - ------------------------ -------- ----------------------- ----- - ------ --- ----------------- ------- -- - ----------------------- - ---- -- -------- ----- ----- - -- ----- ------ ------------ -------------- --- --- - ----- -------- ------ - ----- ------- - ----- ------------------------------- -------- --------- --------------------- - -------
总结
python-shell
包对于 JavaScript 调用 Python 脚本非常方便,我们可以通过配置项来灵活控制 Python 的执行情况。如果你需要在前端中调用 Python 脚本,那么 python-shell
绝对是一个值得尝试的工具。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/57762