首页 > 解决方案 > 裸 Python-JS 脚本

问题描述

当使用 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”的变量

标签: javascriptpythonnaked-objects

解决方案


Naked文档:

execute_js() 函数在 Node.js 脚本文件上运行 execute() 函数。不要将要执行的命令作为第一个参数传递,而是将 Node.js 脚本文件路径作为第一个参数传递,将任何其他命令参数作为第二个参数传递(可选)

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

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

我认为您的问题的解决方案是更改节点程序如下:

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)

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


推荐阅读