📅  最后修改于: 2023-12-03 15:06:48.982000             🧑  作者: Mango
在 Node.js 应用中调用 Python 脚本是一种非常灵活而且具有实用性的技巧,可以让我们将 Python 的优势与 Node.js 的优势结合起来。PythonShell 是一个 Node.js 模块,它提供了一个能够运行 Python 代码的接口。在本文中,我们将看到如何使用 PythonShell 在 Node.js 中运行 Python 脚本。
安装 PythonShell 很简单,只需要在命令行中运行下面的命令即可:
npm install python-shell
下面是一个简单的示例,演示如何使用 PythonShell 在 Node.js 中运行 Python 脚本:
const {PythonShell} = require('python-shell');
PythonShell.run('my_script.py', null, function (err) {
if (err) throw err;
console.log('Python script executed successfully.');
});
这段代码会运行名为 my_script.py
的 Python 脚本。如果 Python 脚本有任何错误,将抛出错误。否则,Node.js 控制台将打印出一条消息,表示 Python 脚本已经成功执行。
需要注意的是,这段代码中的第二个参数 null
是 Python 脚本的参数列表。如果需要向 Python 脚本传递参数,可以将它们作为数组传递。
我们可以将参数作为数组传递给 PythonShell.run()
函数,例如:
const {PythonShell} = require('python-shell');
let options = {
args: ['apple', 'orange', 'banana']
};
PythonShell.run('my_script.py', options, function (err) {
if (err) throw err;
console.log('Python script executed successfully.');
});
在上面的示例中,PythonShell.run()
函数第二个参数是一个包含参数列表的对象。这样,当 Python 脚本被执行时,它会接收到指定的参数列表。
我们可以在 Python 脚本中通过 sys.argv
获取参数值,例如:
import sys
print("Arguments: ", sys.argv)
PythonShell
模块提供了一个 .on('message', function)
事件,可以用来获取 Python 脚本的输出,并在 Node.js 中处理它。例如:
const {PythonShell} = require('python-shell');
PythonShell.run('my_script.py', null, function (err, results) {
if (err) throw err;
console.log('Python script executed successfully:', results);
})
.on('message', function (message) {
console.log('Python script output: ', message);
});
在这个示例中,.on('message', function)
事件被用来获取 Python 脚本的输出。可以通过 message
参数访问 Python 脚本的输出。
PythonShell
模块为 Node.js 应用程序提供了一个简单而灵活的方法来执行 Python 脚本。我们可以轻松地传递参数,获取脚本的输出,并处理任何错误。这个模块在许多不同的情况下都很有用,例如调用机器学习算法、处理自然语言文本等等。