Форум сайта python.su
xam1816 так у автора
файл может быть очень большим и должен читаться постепенно без загрузки всего файла в оперативную памятьхз что там за файлы и какие лимиты по памяти но у вас по факту в out этот файл и пишется
Офлайн
AD0DE412ну да f.read() прочитает весь файл, нужно вот так
хз что там за файлы и какие лимиты по памяти но у вас по факту в out этот файл и пишется
class LinesCompare: def __init__(self, file_path): self.file_path = file_path def count_same_lines(self): out = {} with open(self.file_path, 'r') as f: while line := f.readline().strip(): # здесь берет последовательно по одной строке из файла out.setdefault(line, 0) out[line] += 1 return out if __name__ == '__main__': lc = LinesCompare('my_file.txt') res = lc.count_same_lines() print(res)
Отредактировано xam1816 (Июнь 25, 2022 11:51:39)
Офлайн
я не про то
смотрите
вот у вас файл на матерное слово много строк и там уникальных строк тоже матерное слово много
сохраня в памяти все уникальные строки мы по факту очень сильно занимаем память (я понимаю там своп итд но …) те автор пытается минимизировать использование ram
вот о чем поинт
Офлайн
ээ точка зрения моя ээну пунтик ээ мой
Офлайн
AD0DE412вообще счет предполагает хранить в памяти n-й элемент. По другому говоря, как можно утверждать что чего-то два, если не помнить сколько было до этого.
сохраня в памяти все уникальные строки мы по факту очень сильно занимаем память
Офлайн
AD0DE412
сохраня в памяти все уникальные строки мы по факту очень сильно занимаем память
vladimir_vl_vlad
должен возвращать результат в виде словаря
Офлайн
если мне не изменяет память автор топика сказал что его устроит любой результат
а так да синтетика скорее всего
зы ну если не используем ram то используем hard так или иначе со всеми минусами кнешно
ззы эээ я не загоняюсь это темой просто … мне показалось что нужно уточнить … немного
Офлайн
FishHookВсе верно: задача учебная и в условии прямо указано что файл долже обрабатываться последовательно без загрузки в оперативную память. Еще раз всем спасибо за ответы.
Я уверен, что ниоткуда, задача учебная, а ТС фантазирует просто.
Офлайн
FishHookЭто всё домыслы. Этот тупорылый файл может прийти от каких-нибудь биологов или астрономов. Будет весить терабайт и его надо будет обрабатывать тем, что есть, а есть только скрипт на питоне. И вот ты можешь либо на трое суток компьютер поставить в непрерывный режим и он его обработает, а можешь сесть и писать правильную программу целую неделю по всем канонам, а эти ребята найдут другого исполнителя, пока ты будешь её писать, и программа твоя станет не нужна прямо в процессе разработки.
Если даже предположить, что и правда много данных формата как в стартовом посте откуда-то прилетают и их надо сохранять в txt и надо считать количество уникальных, ну так считать-то надо не после того, как сохранил в файл, а до.
FishHookДа можно много чего представить. Нужны какие-то одиночные словари с вхождениями? Ну, значит, нужны. Может, он пишет какой-то там многоступенчатый сериализатор. Или там пишет компилятор чего-нибудь во что-нибудь с кучей трансляций и перетрансляций.
Вы можете представить зачем могла бы понадобиться вот эта бессмысленная работа по собиранию количества вхождений строки в словарь?
Отредактировано py.user.next (Июнь 26, 2022 01:46:06)
Офлайн
vladimir_vl_vladТак и есть, потому что тебя учат нормальным вещам, а не какой-то детской хуйне на три строчки.
Все верно: задача учебная и в условии прямо указано что файл долже обрабатываться последовательно без загрузки в оперативную память. Еще раз всем спасибо за ответы.
Офлайн