Для создания итераторов в Python обычно привыкли использовать циклы while и for. Как правило они находятся в выделенной функции, которую вызывают и ждут, когда закончится ее выполнение.
Но что, если объем данных огромен? К примеру, нам необходимо сгенерировать по регулярному выражению возможные фишинговые домены для компании с последующей их проверкой. Вариантов домена может быть тысячи, а то и сотня тысяч, но нам нужно всего 100 штук. Что делать в такой ситуации? Для этого будем использовать генератор!
Что такое генератор в Python?
Генератор Python – это специальная функция, которая позволяет приостанавливать итерацию циклов, выполнения инструкции с сохранением состояния и выводом промежуточного значения. В ином случае, интерпретатор может занять всю ОЗУ на обработку функции и загрузить устройство. Генератор использует ресурсы, только в процессе вычисления, а это как раз одна итерация, пока он не получит задачу перейти к следующей.
Синтаксис представляет собой обычную функцию, за исключением одного параметра:
if __name__ == "__main__":
# Указываем путь к файлу с доменами
file_path = input('Введите путь к файлу или сам файл: ')
main(file_path)