将每个矩阵分开成单独的文件
2019-5-2 13:50:38
收藏:0
阅读:98
评论:2
file.csv 存储了 n 个矩阵。例如,
A B C
A 0 3 4
B 5 0 7
C 7 8 0
A B C D
A 0 3 4 5
B 5 0 7 9
C 7 8 0 5
D 7 8 6 0
所有的矩阵之间用一个空行分隔。
我想将每个单独的矩阵分别存储为一个单独的文件(1.csv,2.csv...n.csv)。请帮帮我。谢谢。
点赞
用户10126088
因此,这应该恰好做到你想要的。
快速而肮脏
-- 读取每行
local files, data = {}
for line in io.lines('file.csv') do
if(line == '') then
if data then table.insert(files, data) end
data = nil
else
data =(data and(data .. '\n')or'').. line
end
end
-- 最后一个文件
如果数据则插入文件
-- 写入文件
for i = 1,#files do
local f = io.open(i ..'.csv','w')
f:write(files [i])
io.close(f)
end
2019-05-03 07:33:04
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

以下是一种可能的方式。只有数据部分保存在 CSV 中。如果您需要头部,您需要在 save_csv() 中添加一些代码。
data字符串中的示例数据。您可以通过将任何您喜欢的文件加载到其中来初始化data。data = [[ A B C A 0 3 4 B 5 0 7 C 7 8 0 A B C D A 0 3 4 5 B 5 0 7 9 C 7 8 0 5 D 7 8 6 0 ]] -------------------------------------------------------------------------------- -- table.concat 函数的变量 local cc = table.concat -------------------------------------------------------------------------------- -- 保存 CSV 的函数 function save_csv(filenumber,t) io.open(filenumber .. '.csv','w'):write(cc(t,'\n')):close() end -------------------------------------------------------------------------------- -- 文件号和答案变量的初始化 local filenumber = 1 local ans = {} -- 逐行处理数据 for line in (data..'\n'):gmatch '(.-)\n' do local s = {} for item in line:gmatch '%d+' do s[#s+1] = item end if #s > 0 then ans[#ans+1] = cc(s,',') elseif #ans > 0 then save_csv(filenumber,ans) filenumber = filenumber + 1 ans = {} end end