如何从 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。
操作非常简单。我有一个包含 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。