An Acronym for Character Separated Values (originally, Comma Separated Values).

A FileFormat to store a table of data. Each row is stored on one line of a FlatFile as a list of values separated by a certain character. The common separator used to be a comma, but nowadays, semicolons and tabs seem to be the most prevelant choices. The pipe characters is also occasionally encountered. CSV files should have the same number of values on every line.

Including the separator character in a data field is tricky business. The CSV format was never formally defined, so no standard quoting or escaping rules exist. As a result, while most software reads and writes CSV files in similar ways, they often disagree about edge cases. Most data importers recognise content within doublequotes as quoted literal strings within which separators are to be disregarded, but again, the same issues arise when including the quote character in a data field. Exchanging CSV files can be therefor be a maddening experience.

Another issue that differs from file to file is whether it contains headers, ie column names, which, if present, are stored in the same form as a record, on the first line of the file. You should always generate CSV files with headers; they make a CSV file much easier to interpret and significantly reduce the likelihood of miscommunication.

CSV files were very common in the days of limited computing power. Nowadays, most data is instead stored in RelationalDataBases and PostRelationalDataBases. Unlike the fields in a relation, data in CSV files is not intrinsically typed, and each field is of varying length. There is no standard means to crossreference between CSV tables nor to handle null values, either.

Since the format is very compact but human readable, they're still an excellent way to exchange tabular data, provided all parties negotiate the exact CSV dialect beforehand.