将文件参数传递给Lua脚本

我需要读取一个输入文件,但我不知道它的名称。

我知道在 C 语言中可以这样做:

FILE *Ifile;
File *Ofile;

int main(int argc, char *argv[]){

    // 输入和输出文件
    Ifile = fopen(argv[1],"r");
    Ofile = fopen(argv[2],"w");

  (更多代码)
}

然后调用“ ./cprogram <任意文件名>.txt <任意文件名>.txt ”。

我能在 Lua 脚本中做类似的事情吗?

点赞
用户142162
用户142162

可以。从 官方文档 中可以发现:

在运行脚本之前,lua会将命令行中的所有参数收集到一个叫做arg的全局表中。脚本名称被储存在索引0中,脚本名称之后的第一个参数被储存在索引1中,以此类推。

例如,你可以像下面这样做:

if #arg < 2 then
    print ("usage: lua " .. arg[0] .. " <ifile> <ofile>")
    return
end

local ifile = io.open(arg[1], "r")
local ofile = io.open(arg[2], "w")
if not ifile or not ofile then
    print ("Error: could not open files")
    return
end
2014-02-16 17:50:10