操作非常简单。我有一个包含由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
等等。
我怎么能这样做?感谢
答案 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
启动,它应该生成一个包含您想要的结构的表。