Python. Чтение из переменной построчно, аналог readline есть?

В программе написана большая функция, которая построчно считывает данные из текстового файла и обрабатывает их по своим алгоритмам.

with open(FilePath, "r") as file:
    my_var1 = 'NotEnd'
    while my_var1 != ''
        my_var1 = file.readline().rstrip()
        # дальше алгоритм обработки my_var1
    print ('Ok')

Возникла необходимость продублировать ту же функцию, но с обработкой данных не из файла, а из переменной. Особенность readline, считывает строку в файле и запоминает позицию. Новое считывание readline будет происходить с новой строки. Возможно ли аналогичным образом обработать переменную, содержащую многострочный текст? Без применения splitlines() и списка? Предположительный пример того, что хочется получить в результате:

STR_VAR = 'Многострочная\nпеременная\nстроки из которой\nбудут обрабатываться\n'
my_var1 = 'NotEnd'
while my_var1 != ''
    my_var1 = STR_VAR.readline().rstrip()
    # дальше алгоритм обработки my_var1
print ('Ok')

Ответы (2 шт):

Автор решения: Виктор

Делайте так:

import re
STR_VAR = 'Многострочная\nпеременная\nстроки из которой\nбудут обрабатываться\n'

def find_iter(s: str):
    for m in re.finditer('(.+)(?:\n\r|\r\n|\n|\r)*',s):
        yield m.group(0)

for s in find_iter(STR_VAR):
    my_var1 = s.rstrip()
    # дальше алгоритм обработки my_var1
    print(my_var1)

Вывод:

Многострочная
переменная
строки из которой
будут обрабатываться

PS: зачем Вам в первом примере

my_var1 = 'NotEnd'
while my_var1 != '': ?

используйте конструкцию:

with open("test.txt", "r") as file:
    for line in file:
        print(line.rstrip())
→ Ссылка
Автор решения: extrn

io.StringIO больше всего похоже на то, что вам нужно

import io

STR_VAR = 'Многострочная\nпеременная\nстроки из которой\nбудут обрабатываться\n'

with io.StringIO(STR_VAR) as file:
    my_var1 = 'NotEnd'
    while my_var1 != '':
        my_var1 = file.readline().rstrip()
        # дальше алгоритм обработки my_var1
    print ('Ok')

А что касается самого цикла обработки, вот чуть более традиционный способ его организовать

for my_var1 in map(str.rstrip, file):
    # дальше алгоритм обработки my_var1

print('Ok')
→ Ссылка