问题描述
正如标题所示,我想知道如何将Lua中的.csv文件转换为2D表。
0,0
0,-1,0
我如何将其转换为类似的内容?
local example_table = {{0,0},{0,0}}
我们将非常感谢您的帮助。
解决方法
1。不要小看CSV。
如果需要通用它,请获取适当的CSV解析库。如果您自己进行解析,则会错过许多可能发生的特殊情况,因此,它仅适用于您知道数据并会注意到是否出现问题的情况。
2。更改文件
如果要使用等效的 Lua代码作为输出,假设您正在Lua中进行解析,则可以执行以下操作:
local input = get_input_somehow() -- probably using io.open,etc.
local output =
"local example_table = {\n"
..
input:gmatch("[^\n]*",function(line)
return "{" .. line .. "};"
end)
..
"\n}"
save_output_somehow(output) -- Probably just write to a new file
3。将CSV解析为表格
如果要将CSV文件直接读取到Lua表中,可以改成这样:
local input = get_input_somehow() -- probably using io.open,etc.
local output = {}
input:gmatch("[^\n]",function(line)
local row = {}
table.insert(output,row)
line:gmatch("[^,]",function(item)
table.insert(row,tonumber(item))
end)
end)
do_something_with(output) -- Whatever you need your data for