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))

 

posted on 2012-12-26 01:26  rongyilin  阅读(282)  评论(0编辑  收藏  举报

导航