|
2 / 2 / 0
Регистрация: 09.02.2015
Сообщений: 32
|
||||||
Чтение огромного файла09.01.2018, 14:59. Показов 8162. Ответов 8
Метки нет (Все метки)
Требуется прочитать текстовый файл построчно с размером 800 мб (будет увеличиваться). 20 миллионов строк.
Может кто-нибудь подсказать способ это сделать?
0
|
||||||
| 09.01.2018, 14:59 | |
|
Ответы с готовыми решениями:
8
Чтение огромного текстового файла Сортировка огромного файла удаление строки из огромного файла |
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
| 09.01.2018, 15:13 | |
|
Что именно тормозит? Чтение или обработка? Сначала локализовать, потом думать, что делать.
Можно приложить полный код для воспроизведения на питоне и на шарпе. И если медленно выполняется именно обработка, то будет полезен скрипт генерации большого файла или хотя бы пример строки.
0
|
|
|
2 / 2 / 0
Регистрация: 09.02.2015
Сообщений: 32
|
|||||||||||
| 09.01.2018, 16:34 [ТС] | |||||||||||
|
Пример строки:
SPFB.SBRF,20170920,215127,18989.00000000 0,1 Обработка на питоне:
Добавлено через 10 минут Сам класс Trade выглядит так:
0
|
|||||||||||
|
|
|||||||
| 10.01.2018, 01:52 | |||||||
|
Golemtata,
Ну и зачем вы построчно все делаете? Опишите логику обработки строки в регулярном выражении. Если у вас нет столько ОЗУ, чтобы читать весь файл в память - используйте mmap. Добавлено через 7 часов 56 минут Но C# - статически типизированный язык, и удивляться тут нечему. К тому же в python коде, который вы привели, примерно 25% времени тратится на преобразования в int\float. И так как эти преобразования важны - выкинуть их нельзя. ---------------------------------------------------------- mmap (метод из python библиотеки mmap) по моим тестам, увы, в данном случае не прибавляет ни скорости, ни даже экономии памяти. Вам нужно работать со строками, а в mmap более подходящее решение для работы с байтовыми срезами больших файлов. Немного лучше работает вариант с генератором, но опять же на разных файлах с разным объемом строк, содержащих нужный набор данных, он может быть эквивалентен вашему варианту чтения и обработки. Попробуйте замерить этот вариант и сравнить скорость с вашим. Возможно, разницы вообще не будет.
P.P.S. CPU\IO на тестовом компе очень фиговые. Добавлено через 1 час 9 минут правка
0
|
|||||||
|
23 / 23 / 14
Регистрация: 01.05.2015
Сообщений: 180
|
|
| 10.01.2018, 04:36 | |
|
А если читать файл не питоном, а седом? Он по умолчанию читает построчно и никаких проблем с регулярными выражениями нет.
0
|
|
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
||
| 10.01.2018, 05:56 | ||
|
Добавлено через 1 минуту Golemtata, а вы их в лист собираете с какой целью, что дальше будет происходить с листом в 20 миллионов элементов? Это ведь тоже несколько гигов в памяти. по поводу файла - может есть смысл ротировать файл?
0
|
||
|
|
||||||
| 10.01.2018, 13:22 | ||||||
|
update поста
После правки (ночь, улица, фонарь, аптека :-)) вставил не от код - должно быть без генератора, только с регулярками. Именно он и имелся ввиду как чуть более быстрый.
0
|
||||||
|
23 / 23 / 14
Регистрация: 01.05.2015
Сообщений: 180
|
|
| 10.01.2018, 14:47 | |
|
Ну я понял задачу как прочитать и обработать, не потеряв в производительности. Тот же sed можно запускать через os.system и его результаты обрабатывать питоном.
Хотя я не исключаю, что я неправильно понял задачу.
0
|
|
| 10.01.2018, 14:47 | |
|
Помогаю со студенческими работами здесь
9
Парсинг огромного XML файла Редактирование огромного текстового файла
Быстрый парсинг огромного txt файла (800 мб) Как прочитать первые 15 символов огромного файла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|