генератор возвращающий строку
Есть некий класс:
class Ticker:
def __init__(self, file_path):
self.file_path = file_path
def open(self):
open_ticker = open(self.file_path, mode='r')
И есть функция, которая получает имя файлов для класса, потом складывает имя папки и файла в один путь и передает классу. Далее класс открывает этот путь:
def find_file_path():
path = "folder/"
for dirpath, dirnames, filenames in os.walk(path):
for ticket_files in path:
ticker = Ticker(file_path=patch+ticket_files)
Как вместо функции сделать генератор, который будет передаваться в класс? Вот так:
ticker = Ticker(file_path=generator(path))
Ответы (1 шт):
Автор решения: Serg Bocharov
→ Ссылка
Для общего понимания, это выглядеть будет как-то так:
import os
class Ticker:
def __init__(self, file_path):
self.file_path = file_path
def open(self):
for file_name in self.file_path:
open_ticker = open(file_name, mode='r')
for line in open_ticker:
print(line)
def generate_filenames(dirname):
for dir_path, dir_names, file_names in os.walk(dirname):
for file_name in file_names:
yield os.path.join(dir_path, file_name)
ticker = Ticker(file_path=generate_filenames("/folder"))
ticker.open()