Sample CSV files for testing parsers and imports, free and CC0

csv/people-10-utf8-bom.csv starts with a UTF-8 byte-order mark, which a reader that does not strip it attaches to the first column name. csv/people-10-semicolon.csv uses ; as its delimiter, as European locales export, where csv/people-10.csv uses ,.

csv/people-10-crlf.csv ends every record in CR LF, so a reader that splits on LF alone leaves a carriage return on the last column. csv/people-10-quoted-newlines.csv has a newline inside a quoted field, so its 10 rows take 20 lines and a reader that splits on lines gets the row count wrong. csv/people-10-quoted-commas.csv has a comma inside a quoted field, which breaks splitting on commas.

csv/people-1000.csv and csv/people-100k.csv hold 1,000 and 100,000 rows of the same 14 columns in 249,645 and 25,395,296 bytes. csv/1mb.csv and csv/10mb.csv are 965,447 and 9,749,583 bytes, prefixes of the same rows, for upload limits.

10 files. The same list as JSON: https://loremfile.dev/csv/index.json

CSV files
FileSizePropertiesDescription
10mb.csv 9.7 MB (9,749,583 bytes) 38,461 rows About 10MB of people rows, fitted to within 5% of the nominal size. Still a prefix of the same dataset.
Snippets
<a href="https://loremfile.dev/csv/10mb.csv">download</a>
curl -O https://loremfile.dev/csv/10mb.csv
1mb.csv 965.4 KB (965,447 bytes) 3,846 rows About 1MB of people rows, fitted to within 5% of the nominal size. Still a prefix of the same dataset.
Snippets
<a href="https://loremfile.dev/csv/1mb.csv">download</a>
curl -O https://loremfile.dev/csv/1mb.csv
people-10-crlf.csv 2.7 KB (2,690 bytes) 10 rows The same ten people rows with every record ending in CR LF, as RFC 4180 specifies, where people-10.csv ends them in LF. A reader that splits on LF alone leaves a carriage return on the last column.
Snippets
<a href="https://loremfile.dev/csv/people-10-crlf.csv">download</a>
curl -O https://loremfile.dev/csv/people-10-crlf.csv
people-10-quoted-commas.csv 2.7 KB (2,706 bytes) 10 rows Ten people rows where the bio field contains a comma inside a quoted field. The field-level twin of people-10-quoted-newlines.csv: that one breaks splitting on lines, this one breaks splitting on commas.
Snippets
<a href="https://loremfile.dev/csv/people-10-quoted-commas.csv">download</a>
curl -O https://loremfile.dev/csv/people-10-quoted-commas.csv
people-10-quoted-newlines.csv 2.7 KB (2,697 bytes) 10 rows Ten people rows where the bio field contains a real newline inside a quoted field, which is where line-by-line splitting goes wrong.
Snippets
<a href="https://loremfile.dev/csv/people-10-quoted-newlines.csv">download</a>
curl -O https://loremfile.dev/csv/people-10-quoted-newlines.csv
people-10-semicolon.csv 2.7 KB (2,679 bytes) 10 rows The same ten people rows delimited by semicolons, as European locales export.
Snippets
<a href="https://loremfile.dev/csv/people-10-semicolon.csv">download</a>
curl -O https://loremfile.dev/csv/people-10-semicolon.csv
people-10-utf8-bom.csv 2.7 KB (2,682 bytes) 10 rows Ten people rows preceded by a UTF-8 byte-order mark, which many CSV readers leave attached to the first column name.
Snippets
<a href="https://loremfile.dev/csv/people-10-utf8-bom.csv">download</a>
curl -O https://loremfile.dev/csv/people-10-utf8-bom.csv
people-10.csv 2.7 KB (2,679 bytes) 10 rows 10 rows of the shared synthetic people dataset with a header row. The same rows appear in every other people-10 fixture.
Snippets
<a href="https://loremfile.dev/csv/people-10.csv">download</a>
curl -O https://loremfile.dev/csv/people-10.csv
people-1000.csv 249.6 KB (249,645 bytes) 1,000 rows 1,000 rows of the shared synthetic people dataset with a header row. The same rows appear in every other people-1000 fixture.
Snippets
<a href="https://loremfile.dev/csv/people-1000.csv">download</a>
curl -O https://loremfile.dev/csv/people-1000.csv
people-100k.csv 25.4 MB (25,395,296 bytes) 100,000 rows 100,000 rows of the shared synthetic people dataset with a header row. The same rows appear in every other people-100k fixture.
Snippets
<a href="https://loremfile.dev/csv/people-100k.csv">download</a>
curl -O https://loremfile.dev/csv/people-100k.csv

Every CSV file in one command, each checked against its hash: npx loremfile get --format csv, or loremfile get --format csv after pip install loremfile.

File names follow the naming grammar. Verify a download against sha256sums.txt.