FishHook
Если даже предположить, что и правда много данных формата как в стартовом посте откуда-то прилетают и их надо сохранять в txt и надо считать количество уникальных, ну так считать-то надо не после того, как сохранил в файл, а до.
Это всё домыслы. Этот тупорылый файл может прийти от каких-нибудь биологов или астрономов. Будет весить терабайт и его надо будет обрабатывать тем, что есть, а есть только скрипт на питоне. И вот ты можешь либо на трое суток компьютер поставить в непрерывный режим и он его обработает, а можешь сесть и писать правильную программу целую неделю по всем канонам, а эти ребята найдут другого исполнителя, пока ты будешь её писать, и программа твоя станет не нужна прямо в процессе разработки.
Так что обработка большого файла должна стоять в приоритете, даже если он не нужен.
Задача хорошая - делайте.
Поступают строки вида AAAA, BBBBB и так далее. Надо из них делать словари вида {'AAAA': 1}, {'BBBBB': 3} и так далее. Всё это должно перетекать из входного текстового файла
любого размера в выходной текстовый файл
любого размера.
При этом на компе нет какой-то суперпамяти оперативной, а есть обычные четыре или восемь гигов, не больше.
AD0DE412 написал хрень.
Общий словарь может не поместиться в памяти.
xam1816 написал хрень.
Входной файл может не поместиться в памяти.
FishHook
Вы можете представить зачем могла бы понадобиться вот эта бессмысленная работа по собиранию количества вхождений строки в словарь?
Да можно много чего представить. Нужны какие-то одиночные словари с вхождениями? Ну, значит, нужны. Может, он пишет какой-то там многоступенчатый сериализатор. Или там пишет компилятор чего-нибудь во что-нибудь с кучей трансляций и перетрансляций.
Я вот сейчас с этим столкнулся, у меня программа сама себе пишет конфигурационные файлы. И там одна часть программы (подсистема) пишет конфигурационные файлы для другой части этой же программы (подсистемы), таким образом эти подсистемы через эти конфигурационные файлы взаимодействуют. Там и стратегии выбираются, и отчёты друг другу передаются. Одна подсистема другой говорит “я там отчёт приготовила, возьми его там-то и там-то” или там “я ковыряла вот это кусок данных и поняла, что там вот такая-то структура, так что ты примени вот такой алгоритм для дальнейшего разбора, а то другой алгоритм даст ошибку или будет неточным”. И там куча таких подсистем и они все друг с другом вот так вот общаются. Всё это инкапсулировано, изолировано и так далее. И уж что в этих конфигурационных файлах ты никак не представишь, потому что их языки я разрабатывал отдельно друг от друга. И там никакого JSON'а нет, XML'а и так далее, там просто тексты. Но какие тексты? ты тоже даже представить себе не можешь. Поэтому у меня всё работает как часы. Я не парюсь, всё ли там правильно отрабатывает. Потому что я знаю, что я всё продумал и всё настроил. Там не будет сбоя или двусмысленности какой-то.
Так что не думай, а просто делай. Сказали “словари нужны” - делай словари. Думать за тебя будет генерал.