RosettaCodeData/Task/CSV-data-manipulation/Lua/csv-data-manipulation-2.lua

27 lines
590 B
Lua

local csv={}
-- read csv file, save records and fields into table
for line in io.lines('file.csv') do
local fields = {}
for field in line:gmatch"[^,]+" do
table.insert(fields, tonumber(field) or field)
end
table.insert(csv, fields)
end
-- change csv values
table.insert(csv[1], 'SUM')
for i=2,#csv do
local sum=0
for _, val in ipairs(csv[i]) do
sum = sum + val
end
table.insert(csv[i], sum)
end
-- Save
local fileHandler = io.open('file.csv', 'w')
for NR, fields in ipairs(csv) do
fileHandler:write(table.concat(fields,","), "\n")
end