1. Learn
  2. /
  3. Курси
  4. /
  5. Набір інструментів Python

Connected

вправа

Створення генератора для завантаження даних частинами (2)

У попередній вправі ви опрацьовували файл рядок за рядком для заданої кількості рядків. А що, якщо ви хочете зробити це для всього файлу?

У такому разі корисно застосувати генератори. Генератори дають змогу виконувати ліниві обчислення даних. Концепція лінивих обчислень особливо корисна, коли ви працюєте з дуже великими наборами даних, адже вона дозволяє ефективно отримувати значення, yield-ячи лише частини даних за раз, а не завантажуючи все одразу.

У цій вправі ви визначите функцію-генератор read_large_file(), яка створює об'єкт-генератор і повертає один рядок із файлу щоразу, коли до нього застосовують next(). CSV-файл 'world_dev_ind.csv' уже є у вашому поточному каталозі.

Зверніть увагу: коли ви відкриваєте з'єднання з файлом, отриманий файловий об'єкт уже є генератором! Тож у реальних задачах вам не доведеться явно створювати об'єкти-генератори в подібних випадках. Однак, з навчальною метою ми пропонуємо вам потренуватися робити це вручну у функції read_large_file(). Успіхів!

Інструкції

100 XP
  • У функції read_large_file() зчитайте один рядок із file_object методом readline(). Присвойте результат змінній data.
  • У функції read_large_file() поверніть зчитаний із файлу рядок за допомогою yield data.
  • У контекстному менеджері створіть об'єкт-генератор gen_file, викликавши вашу функцію-генератор read_large_file() і передавши їй file.
  • Виведіть перші три рядки, які створює об'єкт-генератор gen_file, за допомогою next().