如何从 Torch / Lua 中的文件加载 table?

How to load a table from file in Torch / Lua?

操作非常简单。我有一个包含 N 行和 6 列的 table 的文件,我想将它加载到我的 Torch / Lua 脚本中的 table 中。

数据文件看起来是这样的:

chromNameA  startA  endA    chromNameB  startB  endB
chr22   16867980    16868130    chr22   16669675    16678717
chr22   16867980    16868130    chr22   16685348    16701095
chr22   16867980    16868130    chr22   16723869    16739035
chr22   16867980    16868130    chr22   16748016    16750787
chr22   16867980    16868130    chr22   16750788    16755877

我想将它加载到 table 中,例如 table[1][2] 包含 16867980 等等。

我该怎么做?谢谢

您可以使用 string.match 将单行解析为 table 并使用 io.lines 遍历文件中的行:

-- script.lua
local t, patt = {}, ("(%w+)%s+"):rep(5).."(%w+)"
for line in io.lines() do
  if not line:find("^chromNameA") then
    table.insert(t, {line:match(patt)})
  end
end
print(#t, t[1][1], t[1][6]) -- prints `5 chr22 16678717`

-- file.txt
chromNameA  startA  endA    chromNameB  startB  endB
chr22   16867980    16868130    chr22   16669675    16678717
chr22   16867980    16868130    chr22   16685348    16701095
chr22   16867980    16868130    chr22   16723869    16739035
chr22   16867980    16868130    chr22   16748016    16750787
chr22   16867980    16868130    chr22   16750788    16755877

-- execution: lua script.lua <file.txt

然后您可以将脚本作为 lua script.lua <file.txt 启动,它应该会生成一个具有您想要的结构的 table。