Python Cookbook 19.10: 逐段读取文本文件
1 # -*- coding: utf-8 -*- 2 # 将字符串按照段落分开, 这里认为段落与段落之间间隔一个空行(类似Latex) 3 # 用itertools.groupby() 函数, 列表中具有相同key的函数会被group到一起 4 s = 'aaaaaaaaaa\n \nbbbbbbbbb\nccccccccc' 5 lines = s.split('\n') 6 print lines 7 8 from itertools import groupby 9 def paragraphs(lines, is_seperator=lambda s: not s.strip(), joiner="\n".join): 10 for k, g in groupby(lines, key=is_seperator): 11 if not k: # 空行mapper后的key为True, Pass掉 12 yield joiner(g) 13 14 print list( paragraphs(lines))