csvkit
What it is
csvkit is a free, MIT-licensed suite of command-line tools for converting to and working with CSV files. Its commands cover importing, cleaning, selecting, filtering, joining, sorting, and stacking data, along with formatting and analysis. The in2csv tool converts Excel XLS/XLSX, JSON, and fixed-width files to CSV. For SQL workflows, csvsql can query CSV data and import it into PostgreSQL, while sql2csv extracts query results from PostgreSQL. Database connections use SQLAlchemy dialects, with PostgreSQL and MySQL listed in troubleshooting guidance. csvkit detects delimiters using the first 1024 bytes of input by default and infers types such as numbers, dates, and booleans, though the documentation warns that inference can be wrong. Installation options include pip and Homebrew, and the project recommends virtual environments. Supported systems are Linux, macOS, and Windows with non-end-of-life Python versions; current project metadata requires Python 3.10 or newer. Some tools buffer entire files in memory, so large files may reach csvkit's limits. The license states the software is provided as-is without warranty.
For and against
For
- Commands cover cleaning, filtering, joining, and sorting
- Converts Excel, JSON, and fixed-width files to CSV
- Can query CSV data with SQL
- Supports Linux, macOS, and Windows
Against
- Requires Python 3.10 or newer
- Some tools buffer entire files in memory
- Type inference can occasionally be erroneous
- Provided as-is without warranty
The verdict
csvkit offers a broad set of command-line operations for CSV conversion, processing, and analysis. Consider its Python requirement and memory behavior when working with large files.
Who it suits
csvkit may suit developers, desktop users, and science or research users who work with CSV data from the command line. Its database commands can also support SQL-based CSV workflows.
Plans and prices
Open-source csvkit
Command-line toolkit · no paid tiers stated
Read 1 Oct 2026 · csvkit.readthedocs.io
On the record
- Database integrations
- Database connections use SQLAlchemy dialects; the troubleshooting guide specifically lists PostgreSQL and MySQL backends.csvkit.readthedocs.io · read 1 Oct 2026
- File conversion
- in2csv converts Excel XLS/XLSX, JSON, and fixed-width files to CSV.csvkit.readthedocs.io · read 1 Oct 2026
- Format detection
- csvkit sniffs delimiters using the first 1024 bytes of input by default.csvkit.readthedocs.io · read 1 Oct 2026
- Input tools
- Its input tools include in2csv and sql2csv.csvkit.readthedocs.io · read 1 Oct 2026
- Installation
- The project documents installation with pip, recommends virtual environments, supports Homebrew installation, and offers an optional Zstandard extra.csvkit.readthedocs.io · read 1 Oct 2026
- Maintenance scope
- The maintainers say csvkit generally no longer adds new tools because of limited maintenance time and a desire to keep the toolkit focused.csvkit.readthedocs.io · read 1 Oct 2026
- Output and analysis
- Its output and analysis tools include csvformat, csvjson, csvlook, csvpy, csvsql, and csvstat.csvkit.readthedocs.io · read 1 Oct 2026
- Performance limits
- Some tools stream rows, while others buffer entire files in memory; the documentation says large files may reach csvkit's limits.csvkit.readthedocs.io · read 1 Oct 2026
- Processing tools
- Its processing tools include csvclean, csvcut, csvgrep, csvjoin, csvsort, and csvstack.csvkit.readthedocs.io · read 1 Oct 2026
- Runtime requirement
- The current project metadata requires Python 3.10 or newer.github.com · read 1 Oct 2026
- Security and licensing
- csvkit is released under the MIT License and the license states the software is provided as-is without warranty.csvkit.readthedocs.io · read 1 Oct 2026
- SQL workflows
- csvsql can query CSV data with SQL and import it into PostgreSQL, while sql2csv extracts query results from PostgreSQL.csvkit.readthedocs.io · read 1 Oct 2026
- Support
- User support is provided through the documentation, GitHub issues, and community contributions.csvkit.readthedocs.io · read 1 Oct 2026
- Supported systems
- The documentation states csvkit is supported on non-end-of-life Python versions on Linux, macOS, and Windows.csvkit.readthedocs.io · read 1 Oct 2026
- Target users
- Project metadata identifies developers, end users/Desktop, and science/research users as intended audiences.github.com · read 1 Oct 2026
- Type inference
- csvkit automatically infers numbers, dates, booleans, and other data types, and the documentation warns that inference can occasionally be erroneous.csvkit.readthedocs.io · read 1 Oct 2026
- What it does
- csvkit is a suite of command-line tools for converting to and working with CSV files.csvkit.readthedocs.io · read 1 Oct 2026