У меня есть текстовый файл, который выглядит так:
> Начало группы
text1
text2
> Начало новой группы
text3
Я пытался использовать itertools.groupby
для возврата групп, где каждая группа представляет собой список списков, содержащий:
1) строка, начинающаяся с символа ">".
2) строки текста, следующие за строкой, начинающейся с символа «>», до следующей строки, начинающейся с символа «>».
Итак, из предыдущего текста я бы хотел получить:
[['>Start of group', text1, text2], ['>Start of new group', text3]]
Код, который я написал до сих пор:
with open(filename) as rfile:
groups = []
for key, group in groupby(rfile, lambda x: x.startswith(">")):
groups.append(list(group))
Однако это создает список списков, в котором каждая строка файла находится в своем собственном списке, например:
[['>Start of group'],[text1],[text2],['>Start of new group'],[text3]]
Я думаю, что я, вероятно, просто не очень хорошо понимаю функцию groupby, поскольку я впервые пытаюсь ее реализовать, поэтому любое объяснение приветствуется.