Дробление большого CSV файла
Из прошлой статьи про чтение огромадного CSV в C# вытекло целое приложение, предназначенное для распиливания такого файла на более мелкие части, чтобы с ними можно было работать.
Описание
В общем, я написал приложение, которое разделяет исходный невероятных размеров (несколько гигабайт, скажем) CSV файл на множество более мелких, чтобы с ними можно было работать хоть в Блокноте. Если помните, проблема с CSV в несколько гигабайт заключается в том, что для его чтения потребуется также несколько гигабайт оперативной памяти, что пока ещё является некоторой роскошью.
Итак, вот оно:
Всё просто:
- Перетащить исходный CSV файл в область, обозначенную пунктирной линией (либо два раза кликнуть в первое поле ввода и выбрать файл, либо вставить туда путь до файла);
- Задать путь, куда будут складываться новые отрезанные CSV файлики (также два раза ткнув во второе поле ввода, либо вставив туда путь). Если поле оставить пустым, то файлы будут складываться в каталог с исходным;
- Нажать на кнопку с топором.
По нажатию на F1
появляется окно справки.
Требования
Приложение тестировалось в Windows 8.1
, но должно работать в любой, главное чтобы был установлен .NET Framework 4.5.1
.
Настройки
В .config
файле есть некоторые настройки.
linesPerFile
Через сколько строк разрезать. Например, если задать 1000
, то исходный файл будет читаться в буфер до 1000
строки, после чего буфер скинется в новый файл, и с 1001
строки будет заполняться по новой. И так до конца исходного файла.
Если строки достаточно короткие, то можно ставить значение побольше, от 500000
, скажем. Если довольно большие - лучше не ставить больше 100000
.
addHeader
Если поставить True
, то в каждый новый файл первой строкой будет писаться первая строка исходного файла. Такое может понадобиться, если исходный файл содержит “шапку”. По умолчанию выставлено именно True
.
Загрузить
Для запуска нужна только папка bin\Release
, остальное можете удалить. Из самой папки нужны только эти файлы:
hugeCSVsplitter.exe
hugeCSVsplitter.exe.config
Ookii.Dialogs.Wpf.dll
Можете оставлять замечания/предложения на этой странице либо тут в каментах.
Social networks
Zuck: Just ask
Zuck: I have over 4,000 emails, pictures, addresses, SNS
smb: What? How'd you manage that one?
Zuck: People just submitted it.
Zuck: I don't know why.
Zuck: They "trust me"
Zuck: Dumb fucks