Command-line CSV manipulation — view, filter, sort, select, convert, stats, dedup, and merge. Pure Python, no dependencies.
bash
# View as formatted table
python3 scripts/csv_toolkit.py view data.csv
python3 scripts/csv_toolkit.py view data.csv --head 10
# Filter rows
python3 scripts/csv_toolkit.py filter data.csv -w 'age>30' 'city==Chicago'
# Sort
python3 scripts/csv_toolkit.py sort data.csv --by salary --desc
# Select columns
python3 scripts/csv_toolkit.py select data.csv -c "name,email,salary"
# Convert to JSON
python3 scripts/csv_toolkit.py to-json data.csv -o data.json
# Convert JSON back to CSV
python3 scripts/csv_toolkit.py from-json data.json -o data.csv
# Column statistics
python3 scripts/csv_toolkit.py stats data.csv -c "age,salary"
# Remove duplicates
python3 scripts/csv_toolkit.py dedup data.csv -o clean.csv
# Merge files
python3 scripts/csv_toolkit.py merge file1.csv file2.csv -o combined.csv
CommandDescriptionviewDisplay CSV as a formatted table. Use --head N / --tail N to limit rows.filterFilter rows with -w conditions: col>val, col==val, col!=val, col<=val. Multiple conditions = AND.sortSort by column with --by col. Add --desc for descending. Numeric-aware.selectPick columns with -c "col1,col2".to-jsonConvert CSV to JSON array of objects. Auto-detects numbers.from-jsonConvert a JSON array of objects to CSV.statsColumn statistics: count, unique values, min/max/mean/median for numeric columns.dedupRemove duplicate rows.mergeConcatenate multiple CSV files (same headers).
FlagDescription-d, --delimiterField delimiter (default: ,). Use -d '\t' for TSV.--encodingFile encoding (default: utf-8).-o, --outputWrite result to file instead of stdout.