Piotr-Lis / FileControl

Simple file control - Python boot camp excersise
0 stars 0 forks source link

Zrób tutaj generator linia po lini #5

Closed Amakusa22 closed 3 years ago

Amakusa22 commented 3 years ago

zrób prosze generator który będzie yieldował linia po linia

najprosciej takie cos mozna zrobić

with CtxManager(file_path, "r") as file: for row in file: yield row

Piotr-Lis commented 3 years ago

...ehhmmm... nie czuje tego... rozumiem jak dziala i wiem jak go zbudowac... ...i chyba czaje zeby potem nextem wywolac pierwsza linie (zamiast [0] tak jak zrobilem) nie jestem pewien gdzie go postawic... w klasie nadrzednej control? i po co? czy wykorzystam go gdzies jeszcze? mogłbym po nim iterowac w kontroli BadWOrd... ale tam jest lista po ktorej moge... wiec po co generator...?

czy tu jest jakis sens ktorego ni3 rozumiem? czy to tylko po to zeby przecwiczyc sobie generatora?

To nie że nie chce tego zrobic.... bo nawet juz napisalem taki generator... zwraca po linii... moge go wykorzystac w pierwszy tescie: BadWords (zamiast iterowac po liscie) w drugim tescie Comment moge nextem przywolac pierwsza linie... albo nawet bez nexta (chyba) i tez bedzie OK w trzecim z kolei LastLine potrzebuje sprawdzic ostatnia linie tylko... tu mi ideksowanie super robi robote...

jesli to tylko w ramach cwiczenia, to zostawilbym tak jak jest - kod bardziej zwiezly... a słowo że generatora zrobilem :) jeśli nie rozumiem czegoś... to plisss wyjaśnij... taki mam fetysz że musze rozumieć :) inaczej nie zrobie :)

Amakusa22 commented 3 years ago

po co ze w liscie siedzi cały plik z wszystkimi liniami. Plik potrafi byc ogromny (pliki bazodanowe potrafia miex setki MB) i w takiej sytuacji przechowujesz plik w całosci w pamieci. Masz racje amsz liste lini i bedzie to działac tak samo natomiast z perspektywy pamieci jest to bardzo nieoptymalne

Piotr-Lis commented 3 years ago

done... lepiej teraz thx