操作非常简单。我有一个文件,其中包含一个由 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
等等。
我该怎么做?谢谢
最佳答案
您可以使用 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
启动它应该会生成一个具有您想要的结构的表格。
关于file - 如何从 Torch/Lua 中的文件加载表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29474646/