Lua:
Werken met CSV

Hoe:

Laten we CSV-bestanden lezen en schrijven met Lua. We gaan een basisvoorbeeld behandelen zonder externe bibliotheken.

Een CSV-bestand lezen:

function read_csv(filepath)
  local results = {}
  local file = assert(io.open(filepath, "r"))
  
  for line in file:lines() do
    table.insert(results, line:split(","))
  end
  
  file:close()
  return results
end

-- Een hulpfunctie om strings te splitsen
function string:split(delimiter)
  local result = {}
  local from = 1
  local delim_from, delim_to = self:find(delimiter, from, true)
  while delim_from do
    table.insert(result, self:sub(from, delim_from - 1))
    from = delim_to + 1
    delim_from, delim_to = self:find(delimiter, from, true)
  end
  table.insert(result, self:sub(from))
  return result
end

Naar een CSV-bestand schrijven:

function write_csv(filepath, data)
  local file = assert(io.open(filepath, "w"))
  
  for _, row in ipairs(data) do
    file:write(table.concat(row, ",") .. "\n")
  end
  
  file:close()
end

-- Voorbeeldgegevens
local data = {
  { "Naam", "Leeftijd", "Stad" },
  { "Alice", "30", "New York" },
  { "Bob", "25", "Los Angeles" }
}

write_csv("output.csv", data)

Diepere Duik

De geschiedenis van CSV gaat terug tot de vroege dagen van de informatica, waar eenvoud koning was. Terwijl JSON en XML nu rijkere gegevensstructuren bieden, blijft CSV populair vanwege de leesbaarheid en het gemak waarmee het kan worden bewerkt met spreadsheetsoftware. Let op bij de implementatie voor velden met komma’s, nieuwe regels of aanhalingstekens - deze moeten correct worden geciteerd en/of geëscaped.

Zie Ook