我有一个数据文件,其中每个" row"由\n\n\n
分隔。我的解决方案是首先通过啜饮文件,然后拆分行来隔离这些行:
for row in slurped_file.split('\n\n\n'):
...
是否有" awk
- 喜欢"我可以采取的方法将文件解析为Python 2.7.9中的流,并根据给定的字符串值拆分行?感谢。
答案 0 :(得分:1)
所以标准库中没有这样的东西。但我们可以制作一个自定义生成器来迭代这些记录:
def chunk_iterator(iterable):
chunk = []
empty_lines = 0
for line in iterable:
chunk.append(line)
if line == '\n':
empty_lines += 1
if empty_lines == 2:
yield ''.join(chunk[:-2])
empty_lines, chunk = 0, []
else:
empty_lines = 0
yield ''.join(chunk)
用作:
with open('filename') as f:
for chunk in chunk_iterator(f):
...
这将使用CPython中用C语言编写的文件的每行迭代,因此比一般记录分隔符解决方案更快。