Необходимо получить содержимое этих файлов, и каждый раз при вызове функции возвращать список, содержащий по одной строке из каждого файла (первый вызов - вывод первых строк из всех файлов, второй вызов - вывод вторых строк и т.д.)
Кол-во строк в файлах - всегда одинаковое. Если доходим до конца файла (получаем StopIteration ?) - начинаем заново
def get_links(): dir = 'links' dir_list = os.listdir(dir) links = [] for x in dir_list: with open(os.path.join(dir, x)) as f: links.append(f.read().splitlines()) for x in links: for y in links: yield (y)
a = get_links() while 1: print(next(a))
Понимаю, почему это происходит, но хз как решить. Как же правильно пользоваться yield? Или может кто предложит другой путь решения.