Как разделить csv файл на несколько частей

Обновлено: 04.07.2024

Как разбить файл на две части, разархивировать и изменить вторую часть, а потом собрать файл обратно?
Здравствуйте! Хочу поднять тему Ципиховича Эндрю (в праве поднять тему отказано: новый вопрос.

Как сохранить в csv utf8 кодировки файл из exсel?
Как сохранить в csv utf8 кодировки файл из exel?

Как сохранить VBA-массив в CSV-файл без Excel
Как можно сохранить VBA-массив в CSV-файл без использования Excel? Сейчас я сначала вставляю.

50 миллионов строк? Это же кто такой файл родил?


Откройте csv как обычный текстовый файл, и построчно считывая, разбивайте как хотите.

Можно попробовать Access или Pover Pivot for Excel или sql-запрос 5000 строк в словарь, затем читаете построчно скриптом текстовый файл и ищите совпадение в словаре, думаю за пару тройку минут может отработать.

aroma4s, приложите часть Excel файла, часть csv и то, что нужно получить с помощью ВПР.
Без этого будут только общие рассуждения.

Да, скорее всего могут быть проблемы даже если файл читать не полностью, а построчно.

А с небольшими файлами проблем нет.
Вот такой код разбивает файл в 1 млн.строк (примерно 27мегабайт) на файлы по 10000 строк за 10 секунд.

SoftIce, я имел в виду - как взять часть огромного файла, чтобы выложить на форум. Ведь Блокнотом его не откроешь, а через Excel долго и при сохранении могут возникнуть искажения.
Вот код, которым можно получить первые 1000 строк большого файла менее чем за секунду:

База данных недействительных паспортов

Понимаете, вы умнее меня и я не понимаю что вы имеете ввиду, можете подробно объяснить как это реализовать

Добавлено через 2 минуты
SoftIce, База данных недействительных паспортов

Понимаете, вы умнее меня и я не понимаю что вы имеете ввиду, можете подробно объяснить как это реализовать?

Добавлено через 1 минуту
bedvit, Я как то читал что можно загрузить csv в access и потом разбить на подмножества, не подскажите как это можно сделать?

Добавлено через 3 минуты
Hugo121, Можете подробней рассказать как загрузить в словарь и как считать такое количество строк?

Добавлено через 10 минут
Казанский, приложить не могу так как на работе нету доступа к интернету и копировать на флешку файлы нельзя,

В кратце: я делаю один лист со своими 5000-ми значениями, и второй лист на 1000000 значений с помощью впр искомые значения из 1-го листа ищутся во 2-м листе, если одинаковые значения есть то напротив строки со значением выводится тоже самое значение, если таких значений во 2-м листе нет то пишется Н/Д т.е. недопустимое данное, имеется ввиду что совпадений нет

мне нужно разбить 50000000 строчный файл по 1000000, чтобы я мог вставлять во второй лист и тем самым искать совпадающие значения

Добавлено через 8 минут
SoftIce, Казанский,
я думаю VB используется для видимых значений т.е. до 1000000, но никак не те что за границей поэтому я думаю тут либо нужно какой нибудь отдельный скрипт *.vbs написать либо как то с помощью access сделать подмножества cvs файлов
моя функция ВПР примерно выглядит так =ВПР(A7;'Лист2'A:A;1;ЛОЖЬ)

Как разбить огромную электронную таблицу CSV Excel на отдельные файлы

Excel отлично справляется со многими повседневными задачами. Но время от времени вы сталкиваетесь с одним из его недостатков: размером с электронную таблицу. Если вам нужно знать, как уменьшить электронную таблицу Excel или разделить большой CSV, мы вам поможем.

Достижение предела количества строк в электронной таблице само по себе является довольно серьезной задачей. Текущий предел строки таблицы Excel составляет 1 048 576. Это верно — более 1 миллиона строк и столько же столбцов.

Но достижение этого ограничения на самом деле невероятно легко при выполнении определенных задач. Если вы торгуете по электронной почте, вы можете импортировать файл CSV. импортировать содержащий миллионы адресов электронной почты. Единственная проблема заключается в том, как вы на самом деле управляете электронной таблицей с таким количеством адресов? Кроме того, что если кто-то отправит вам CSV, который уже превысил лимит (из другой программы)?

Что ж, я покажу вам, как разбить этот огромный CSV на легко управляемые куски.

(У вас нет большого CSV под рукой? Есть несколько довольно больших наборов данных CSV на data.gov . Я собираюсь использовать список сравнения больниц из 260 000 строк, чтобы вы могли использовать тот же файл.)

1. Используйте программу

Существует множество полезных программ для разветвления CSV. Я покажу вам два лучших.

CSV Chunker — это разветвитель CSV с открытым исходным кодом. Он может обрабатывать большие файлы, быстро разбивая их на куски по вашему выбору. Потребовалось около 3 секунд, чтобы разделить наш CSV для больниц сравнения на 106 блоков, каждый из которых содержит 2500 строк.

Как разбить огромную электронную таблицу CSV Excel на отдельные файлы CSV Chunker до и после

CSV Splitter — наш второй инструмент. Он предлагает почти такую ​​же функциональность CSV Chunker, хотя и с немного более гладким дизайном. CSV Splitter потребовалось около 4 секунд, чтобы разделить нашу CSV для больниц сравнения на 106, снова содержащую 2500 строк в каждой.

Как разбить огромную электронную таблицу CSV Excel на отдельные файлы csv splitter до и после

2. Используйте пакетный файл

Далее, программируемый пакетный файл пакетный файл Мы можем использовать пакетный файл для обработки CSV на более мелкие порции, настраивая файл для доставки разных порций.


Откройте новый текстовый документ. Скопируйте и вставьте следующее:

Во-первых, вам нужно изменить местоположение вашего входного файла. Во-вторых, вам нужно указать, сколько строк должны содержать ваши выходные файлы. Наконец, укажите местоположение выходного файла. Я оставил там свои пути к файлам, чтобы проиллюстрировать ситуацию. Кроме того, ваше выходное имя файла должно иметь суффикс «_ $ i.csv», соответствующий моему. В противном случае ваши выходные файлы не будут правильно нумерованы.

Когда вы отредактировали файл со своими собственными данными, нажмите CTRL + S, чтобы сохранить ваш скрипт.

Оригинальный сценарий можно найти здесь .

4. Загрузите его в модель данных

Наше окончательное решение фактически не разбивает большой CSV на более мелкие части. Видите ли, Хосе Баррето, член команды OneDrive, недавно проиллюстрировал, как именно вы можете загрузить большой файл CSV в Excel. В этом случае, большое значение превышает предел строки в 1 048 567 строк. В учебном пособии он объясняет, что вместо фактической загрузки файла Excel 2016 может создать ссылку на данные для файла CSV.

Как разбить огромную электронную таблицу Excel CSV на отдельные файлы Строки CVS в сводной таблице модели данных Excel

Если это решение подходит вам, следуйте подробному руководству Хосе Баррето прямо здесь . Помните, что это не разделяет CSV, но это означает, что вы можете манипулировать своими данными в определенных инструментах Excel. Если вы обращаетесь к вашим данным для непосредственного взаимодействия с ними, стоит попробовать.

Сломай!

Мы перечислили четыре решения для разрушения ваших массивных файлов CSV, включая два разных инструмента.

Из четырех решений пакетный файл, вероятно, самый медленный. Скрипт PowerShell быстрый и легко настраиваемый, а два приложения просты в использовании из коробки. Наконец, у вас есть возможность напрямую импортировать ваши данные в Excel миллионами строк.

Microsoft Excel отлично справляется со многими повседневными задачами. Но время от времени вы сталкиваетесь с одним из его недостатков: размером с электронную таблицу. Прочтите, чтобы узнать, как уменьшить размер таблицы Excel или разделить большой файл CSV на несколько файлов.

Зачем разбивать большой CSV на несколько файлов?

Вы можете подумать: «Зачем мне нужно разбивать большой файл Excel на несколько файлов меньшего размера?» Это интересный вопрос, особенно с учетом того, что в Excel есть ограничение на количество строк в таблице 1048576.

Более 1 миллиона строк звучат феноменально. Однако достичь лимита строк проще, чем вы думаете, особенно при выполнении определенных задач.

Например, если вы продаете по электронной почте, вы можете импортировать файл CSV, содержащий миллионы адресов электронной почты. Единственная проблема в том, как управлять таблицей с таким количеством адресов? Кроме того, что, если кто-то отправит вам CSV, который уже превышает лимит (из другой программы)?

Если это похоже на проблему, с которой вы, вероятно, столкнетесь, попробуйте следующие пять способов разделить большой файл CSV или Excel на несколько файлов меньшего размера.

У вас нет под рукой большого CSV-файла, но вы хотите поиграть дома? В примерах я использую набор данных открытого исследования COVID-19 , который вы тоже можете скачать и использовать.

1. Разбейте файлы CSV с помощью программы

Есть несколько полезных программ-разделителей CSV. Вот двое из лучших. Однако справедливое предупреждение: поскольку эти программы работают, они иногда сталкиваются с проблемами памяти, что является общей проблемой для программ, разделяющих CSV.

Бесплатный Огромный Сплиттер CSV

Сплиттер CSV

2. Используйте пакетный файл

Затем создайте программируемый командный файл . Вы можете использовать пакетный файл для обработки CSV на более мелкие фрагменты, настраивая файл для доставки разных фрагментов.

Откройте новый текстовый документ, затем скопируйте и вставьте следующее:

Перед запуском вам необходимо настроить командный файл. Я расскажу вам, что делает каждая команда, и вы можете изменить это в соответствии с размером вашего командного файла, а также с требуемым выводом.

После того, как вы ввели свои переменные, перейдите в Файл> Сохранить как . Выберите имя файла и нажмите Сохранить . Затем выберите только что сохраненный текстовый файл и нажмите F2, чтобы переименовать его. Замените расширение .txt на .bat и нажмите ОК, когда появится предупреждение. Теперь вы можете разделить ваш большой CSV-файл на более мелкие выходные файлы.

3. Используйте сценарий PowerShell для разделения файла CSV.

Вы можете использовать командные файлы для широкого круга повседневных задач . Но сценарии PowerShell быстрее, особенно для этого типа обработки и разделения.

Следующий сценарий быстро разрезает ваш большой CSV на файлы меньшего размера.

Сначала нажмите CTRL + X, чтобы открыть меню Windows Power, затем выберите PowerShell . Если PowerShell не подходит, введите powershell в строке поиска меню «Пуск» и выберите «Лучшее совпадение».

Теперь скопируйте и вставьте следующий скрипт:

Вы можете найти исходный сценарий на SPJeff .

4. Разбейте большой CSV-файл с помощью Power Pivot

Ваше предпоследнее решение разбить большой CSV-файл на мелкие части на самом деле не разбивает его. Скорее, он позволяет вам загрузить большой CSV-файл в Excel и использовать инструмент Power Pivot, чтобы открыть его. Вот так; вы можете эффективно игнорировать ограничение строки Excel и управлять файлом в программе.

Для этого нужно создать ссылку на данные в CSV-файл, а затем использовать Power Pivot для управления содержимым. Полное объяснение и руководство можно найти в блоге Хосе Баррето, в котором подробно описан процесс.

Помните, что этот процесс не разбивает CSV на небольшие части. Однако это означает, что вы можете управлять CSV в Excel, что является очень удобной альтернативой. Если вам нужны дополнительные советы, узнайте, как использовать сводную таблицу для анализа данных .

5. Разбейте большой файл CSV в Интернете с помощью разделенного CSV

Существуют также онлайн-сервисы, которые разбивают ваш большой CSV-файл на более мелкие части. Одним из таких вариантов является Split CSV , бесплатный онлайн-разделитель CSV.

Split CSV отлично справился с набором данных COVID-19, разбив его на удобные фрагменты. Как и в случае с другими инструментами, вы определяете количество строк для каждого файла и позволяете ему разделять его. Однако у меня не было большого CSV-файла для тестирования, поэтому ваш опыт может отличаться.

Разделенный CSV также включает дополнительные опции. За абонентскую плату вы можете использовать настраиваемый разделитель , выбрать тип выходного файла, удалить определенные символы из выходных файлов и удалить повторяющиеся строки.

Разбейте файлы CSV на легко управляемые блоки

Теперь у вас есть пять решений для разбиения файлов CSV на небольшие части, что упрощает управление ими. Решения различаются по скорости и размеру файлов CSV, которыми они могут управлять, поэтому вам, возможно, придется поэкспериментировать, чтобы найти решение, которое лучше всего подходит для вас.

При работе с большими файлами CSV, можно столкнуться с зависаниями программ или даже операционной системы. При обработке таких файлов при помощи самописных скриптов, также возникнет проблема большого потребления оперативной памяти.

Для упрощения работы с данными - можно воспользоваться следующими методами разбития CSV:

  • разбитие по количеству строк в файле;
  • разбитие по размеру файла;

Разбитие CSV файла по количеству строк:

Команда split разобьет выбранный csv-файл (data.csv в примере). При помощи -l 100 мы указываем, что хотим разбивать файл каждые 100 строк. Последний созданный файл будет содержать количество строк, которое останется (не более 100, в зависимости от количества строк в исходном файле). Имена новым файлам даются автоматически.


Эта команда проставит расширение .csv для каждого файла из директории. Обратите внимание, что наш исходный файл также будет под влиянием данной команды.
added_csv_extension.jpg 63,1 КБ

Также стоит отметить, что размер последнего файла зависит от того, сколько строк осталось.

Разбитие CSV файла по размеру файла:

В этой команде -b говорит о том, что мы хотим разбивать файлы по байтам. За ним следует аргумент 1m (1 миллион байтов). В результате выполнения этой команды мы получим файлы размером 1 мегабайт каждый:

Для этого нам нужно либо увеличить размер файлов/увеличить количество строк в них. Либо же добавить параметр suffix-length, который сделает имена получаемых файлов длиннее:

Добавляем -a и задаем длину названия файла. Все довольно просто.

При работе с большими файлами CSV, можно столкнуться с зависаниями программ или даже операционной системы. При обработке таких файлов при помощи самописных скриптов, также возникнет проблема большого потребления оперативной памяти.

Для упрощения работы с данными - можно воспользоваться следующими методами разбития CSV:

  • разбитие по количеству строк в файле;
  • разбитие по размеру файла;

Разбитие CSV файла по количеству строк:

Команда split разобьет выбранный csv-файл (data.csv в примере). При помощи -l 100 мы указываем, что хотим разбивать файл каждые 100 строк. Последний созданный файл будет содержать количество строк, которое останется (не более 100, в зависимости от количества строк в исходном файле). Имена новым файлам даются автоматически.


Эта команда проставит расширение .csv для каждого файла из директории. Обратите внимание, что наш исходный файл также будет под влиянием данной команды.
added_csv_extension.jpg 63,1 КБ

Также стоит отметить, что размер последнего файла зависит от того, сколько строк осталось.

Разбитие CSV файла по размеру файла:

В этой команде -b говорит о том, что мы хотим разбивать файлы по байтам. За ним следует аргумент 1m (1 миллион байтов). В результате выполнения этой команды мы получим файлы размером 1 мегабайт каждый:

Для этого нам нужно либо увеличить размер файлов/увеличить количество строк в них. Либо же добавить параметр suffix-length, который сделает имена получаемых файлов длиннее:

Добавляем -a и задаем длину названия файла. Все довольно просто.

Читайте также: