如何从另一个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
答案 0 :(得分:2)
如果要通过向其传递许多参数来加载和执行脚本,则必须通过以下方式执行此操作:加载脚本并通过向其传递一些参数来执行它:
local chunk = loadfile("deepdream.lua")
chunk("-content_image", "content_image", "-output_image", "output_image")
请注意,这将 以args
的方式填充lua.exe
参数。它将参数作为可变参数传递,就像任何其他Lua函数一样。所以它可以搞乱你的全局等等。此外,与执行lua.exe
不同,这将在当前进程中执行,因此如果错误输出,则必须由您处理错误。
如果你愿意,编写一个接受你提供的字符串的函数,使用Lua模式来解析参数等等,然后用这些参数加载脚本就不会很困难。
如果您想要执行一个脚本,就像您在其上使用lua.exe
一样,那么您只需使用os.execute
:
os.execute("lua.exe deepdream.lua -content_image content_image -output_image output_image")
答案 1 :(得分:2)
你可以在arg:
中使用带有参数的loadfileloadfile("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