A powerful CSV processing tool for splitting large airdrop files into manageable chunks of 797 records each, with optional address replacement functionality. Perfect for processing thirdweb airdrop CSV files from airdrop.easynodepro.com for large validator operations.
- 📁 Multiple Input Options: Process single files or multiple files at once
- 🔄 Address Replacement: Automatically replace addresses using mapping configuration
- 📊 Smart Chunking: Splits data into optimal 797-record chunks
- 🗂️ Organized Output: Creates timestamped folders in
/reports/YYYY-MM/structure - 🧪 Built-in Testing: Comprehensive test suite with validation
- 🎨 User-friendly GUI: Clean, intuitive interface
-
Clone the repository:
git clone https://github.com/easy-node-pro/csvsplitter.git cd csvsplitter -
Install requirements (Ubuntu/Debian):
sudo apt-get install python3-tk
-
Set up address mapping (optional):
cp mapping.csv.example mapping.csv # Edit mapping.csv with your address replacements
The CSV processor can automatically replace addresses during processing using a mapping file.
-
Copy the example mapping file:
cp mapping.csv.example mapping.csv
-
Edit
mapping.csvwith your actual address mappings:Find,Replace 0xOLD_ADDRESS_1,0xNEW_ADDRESS_1 0xOLD_ADDRESS_2,0xNEW_ADDRESS_2
- File name:
mapping.csv - Required columns:
Find- The address to find and replaceReplace- The new address to use as replacement
- Format: Standard CSV with header row
- Case sensitivity: Address matching is case-insensitive
The mapping file is automatically detected when placed in the same directory as app.py. You can also select a different mapping file using the UI.
Security Note: The mapping.csv file is ignored by git to keep your private address mappings local.
Run the main application:
python3 app.py- Single File: Select one CSV file for processing
- Multiple Files: Select multiple CSV files to combine and process as one dataset
Validate functionality with the comprehensive test suite:
python3 test_comprehensive.pyProcessed files are saved to:
reports/
└── YYYY-MM/
└── filename_split/
├── filename_part_1.csv (797 records + header)
├── filename_part_2.csv (797 records + header)
└── filename_part_N.csv (remaining records + header)
The application uses a modular structure:
app.py- Main GUI applicationutils/- Utility modules for file handling, CSV processing, and data combinationtest_data/- Reference test files with known address mappingstest_comprehensive.py- Full validation test suite
This project is developed for EasyNodePro.com operations.
