我如何从另一个 Lua 脚本中 运行 一个带有用户指定参数的 Lua 脚本?

How would I run a Lua script with user specified parameters from inside another Lua script?

我如何从另一个 Lua 脚本中 运行 一个带有用户指定参数的 Lua 脚本?

下面的代码行得通吗?其中 "content_image" 是我指定的输入图像(保存到图像文件,或仍在脚本中)到 "deepdream.lua" 脚本中,"output_image" 是 "deepdream.lua" 的输出我想在我的 Lua 脚本中使用的脚本。

dofile("deepdream.lua -content_image content_image -output_image output_image")

我正在寻找 运行 在另一个 Lua 脚本中的脚本可以在这里找到:https://github.com/bamos/dream-art/blob/master/deepdream.lua

如果您想通过传递一些参数来加载和执行脚本,您必须通过...加载脚本并通过传递一些参数来执行它:

local chunk = loadfile("deepdream.lua")
chunk("-content_image", "content_image", "-output_image", "output_image")

请注意,这将 而不是 lua.exe 的方式为参数填写 args。它会将参数作为可变参数传递,就像任何其他 Lua 函数一样。所以它会弄乱你的全局等等。另外,和执行lua.exe不同的是,这里会在当前进程中执行,所以如果出错,就得自己处理了。

如果你愿意,编写一个函数并不难.

如果你想像使用 lua.exe 一样执行脚本,那么你只需使用 os.execute:

os.execute("lua.exe deepdream.lua -content_image content_image -output_image output_image")

您可以在 arg 中使用带参数的加载文件:

loadfile("deepdream.lua")({content_image="content_image",output_image="output_image"})

在deepdream.lua中:

local arg={...}

local content_image = arg[1].content_image
local output_image  = arg[1].output_image