Home / Tools / csv-split

CSV & data

csv-split

Split a big CSV into smaller files. Every new file keeps the header.

csv-split — Split a big CSV into smaller files. Every new file keeps the header.

Use it when a CSV is too big for Excel, too big to upload, or when you want one file per group, like one file per state.

What it does

  • Splits by row count, number of parts, file size, or a column value.
  • Keeps the header on every new file.
  • Reads the file bit by bit, so it can handle files bigger than your computer's memory.

Before and after

One big orders.csv

Order ID,Date,Customer,State,Total
A00001,2026-02-02,Ben Ode,NY,35.43
A00002,2026-03-03,Dev Patel,FL,50.72
A00003,2026-04-04,Ana Ruiz,CA,123.47
… 1,197 more rows (1,200 rows total)

Split by the State column

orders-CA.csv  (header + only CA rows)
orders-FL.csv  (header + only FL rows)
orders-NY.csv  (header + only NY rows)

From csv-split/samples/orders.csv (1,200 rows) and the README example.

Get it

For your computer · Gumroad · $1

One Python script. Needs Python 3.8+. CSV and text files only, not .xlsx.

FAQ

What does this tool do?

Split a big CSV into smaller files. Every new file keeps the header. Use it when a CSV is too big for Excel, too big to upload, or when you want one file per group, like one file per state.

What does it cost?

For your computer on Gumroad costs $1. One Python script. Needs Python 3.8+. CSV and text files only, not .xlsx.

Will you see my files?

The download tools run on your computer, so those files stay with you. The Apify tools run in your own Apify account. This website does not take uploads.