Jun-27-2022, 08:21 PM
(This post was last modified: Jun-27-2022, 08:21 PM by Gribouillis.)
An even more functional version
from functools import partial import io from itertools import dropwhile import operator import sys def equal(x): return partial(operator.eq, x) def not_equal(x): return partial(operator.ne, x) def takeuntil(pred, seq): for elem in seq: yield elem if pred(elem): return file = io.StringIO("""\ titi titi titi yes ok ok ok no totot tototo tot """) seq = takeuntil(equal('no\n'), dropwhile(not_equal('yes\n'), file)) sys.stdout.writelines(seq)
Output:yes
ok
ok
ok
no