裸Python-JS脚本

Naked Python-JS script

当使用 python 的 Naked 库启动带参数的 jv 脚本时,它总是给我同样的问题,即参数未定义。 这是 python 代码:

from Naked.toolshed.shell import execute_js, muterun_js
pi=str(8)
response = execute_js('file.js', pi)

这里是 file.js 代码:

console.log(pi);

如您所见,这是一段非常简单的代码,但我不知道如何在不声明参数的情况下发送参数。 我看到了类似的问题,但这里的主要问题是我不知道如何在 javascript 代码中声明一个来自“out”

的变量

来自 Naked 文档:

The execute_js() function runs the execute() function on a Node.js script file. Instead of passing the command to be executed as the first parameter, pass a Node.js script filepath as the first parameter and any additional command arguments as the second parameter (optional)

所以问题不在python而是在Node.js程序。

Here 您可以找到有关如何从控制台 运行 时将参数传递给节点程序的说明。

我认为解决你的问题的方法是更改​​节点程序如下:

var pi = process.argv[2];
console.log(pi);

您选择第三个参数的地方,因为前两个参数分别是 node.js 路径和当前程序路径。

更新:如果你想传递超过 1 个变量,你只需将所有变量作为空白分隔字符串作为 execute_js.

的第二个参数传递

示例:

Python边

pi = 8
rho = 10

arg_in = f"{pi} {rho}" # for older versions of python you can use "{pi} {rho}".format(pi=pi, rho=rho)

response = execute_js('file.js', arg_in)

Js端

var pi = process.argv[2],
    rho = process.argv[3];

console.log(pi, rho)

您可以传递任意数量的参数,使用列表和循环进行调整,您可以传递动态数量的参数。