You can use itertools.groupby to group the lines that appear after :Entry into lists:
import itertools as it filename='test.dat' with open(filename,'r') as f: for key,group in it.groupby(f,lambda line: line.startswith(':Entry')): if not key: group = list(group) print(group)
gives
['- Name\n', 'John Doe\n', '\n', '- Date\n', '20/12/1979\n'] ['\n', '-Name\n', 'Jane Doe\n', '- Date\n', '21/12/1979\n']
Or, to process groups, you do not need to convert group to a list:
with open(filename,'r') as f: for key,group in it.groupby(f,lambda line: line.startswith(':Entry')): if not key: for line in group: ...
unutbu
source share