我有一个3000+行的.csv文件,我通过将多个.csv源拉到一起创建的,内容示例如下。
NEC; 35; -1; 10
RC5; 0; -1; 12
Panasonic; 176; 0; 61
RC5; 21; -1; 1
RC5; 21; -1; 1
NEC; 0; -1; 0
RECS80; 4; -1; 30
NEC; 1; 249; 3
Denon; 1; -1; 40
NEC; 132; 60; 33
请有人告诉我如何从上面创建一个只有唯一行的新.csv文件?
如果可能的话,请有人继续解释我如何在我现有的.csv文件和Lua数组/表创建阶段做到这一点-非常感谢!。。
仅供参考-我的新Lua代码使用循环和以下内容来填充.csv
local info = table.concat ({protocol, D, S, F}, '; ')
最简单的方法可能是逐个读取行,并在不解析它们的情况下跟踪您已经看到的行:
local csv = assert(io.open("test.csv", "r"))
local lines = {}
for line in csv:lines() do
if not lines[line] then
print(line)
lines[line] = true
end
end
这应该将text.csv中的所有唯一行打印到标准输出(与它们在文件中出现的顺序相同(。
如果您的系统中有uniq和sort
,您也可以将它们结合使用。
如果您需要将相同的逻辑应用于表中的行,那么类似的操作应该有效(假设这些行在表tt
中(:
local lines = {}
for _, line in ipairs(tt) do
if not lines[line] then
print(line)
lines[line] = true
end
end