python中文本文件内容的读取和分组

python中文本文件内容的读取和分组,python,Python,我有一个用Python读取的文本文件 内容 line1 line2 line3 line4 line5 line6 .... 阅读: with open(path, encoding="utf8", errors='ignore') as f1: contents = f1.readlines() print (contents) 作品: 但我想读的内容是基于分隔行的空白 预期OP: [[line1, line2], [line3,line4,line5], [line6]

我有一个用Python读取的文本文件

内容

line1
line2

line3
line4
line5

line6

....
阅读:

with open(path, encoding="utf8", errors='ignore') as f1:
   contents = f1.readlines()
   print (contents)
作品:

但我想读的内容是基于分隔行的空白

预期OP:

[[line1, line2], [line3,line4,line5], [line6]]

有没有一种比读取文件的全部内容迭代列表,然后根据空格进行分组更短的方法。对方法有什么建议吗?

像这样的建议可以满足您的需要:

In [8]: result = []

In [9]: with open(path, encoding="utf8", errors='ignore') as fh:
   ...:     group = []
   ...:     for l in fh:
   ...:         l = l.strip()
   ...:         if not l:
   ...:             result.append(group)
   ...:             group = []
   ...:         else:
   ...:             group.append(l)
   ...:     if group:
   ...:         result.append(group)
   ...:

In [10]: result
Out[10]: [['line1', 'line2'], ['line3', 'line4', 'line5'], ['line6']]
或者使用

In [8]: result = []

In [9]: with open(path, encoding="utf8", errors='ignore') as fh:
   ...:     group = []
   ...:     for l in fh:
   ...:         l = l.strip()
   ...:         if not l:
   ...:             result.append(group)
   ...:             group = []
   ...:         else:
   ...:             group.append(l)
   ...:     if group:
   ...:         result.append(group)
   ...:

In [10]: result
Out[10]: [['line1', 'line2'], ['line3', 'line4', 'line5'], ['line6']]
from itertools import groupby    
[g for g in [list(g) for _, g in groupby(open(path).read().splitlines(), lambda l: bool(l.strip()))] if all(g)]