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

时间:2015-04-06 15:50:25

标签: file lua load torch

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

数据文件看起来像这样:

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[1][2]包含16867980等等。

我怎么能这样做?感谢

1 个答案:

答案 0 :(得分:2)

您可以使用string.match将单个行解析为表,并使用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启动,它应该生成一个包含您想要的结构的表。