【发布时间】:2017-01-18 11:22:52
【问题描述】:
我正在使用来自Reading data blocks from a file in Python 的以下示例,但我遇到了问题,它总是忽略文本文件中的第一块文本。
我已经对原始 SO 问题中的脚本进行了一些更改,它运行但总是首先返回文本文件中的第二个块,然后是第三个块,永远不会返回第一个块。
非常感谢任何帮助。
def read_blocks(input_file, i, j):
empty_lines = 0
blocks = []
for line in open(input_file):
# Check for empty/commented lines
if not line or line == '\n':
# If 1st one: new block
if empty_lines == 0:
blocks.append([])
blocks[-1].append(line)
empty_lines += 1
# Non empty line: add line in current(last) block
else:
empty_lines = 0
blocks[-1].append(line)
return blocks[i:j + 1]
for block in read_blocks("C:\\test_file.txt", 1, 1):
print '-> block'
for line in block:
print line
文本文件
Block: 1
Block: 1.2
Block: 1.3
Block: 2
Block: 2.1
Block: 2.2
Block: 2.3
Block: 3
Block: 3.1
【问题讨论】:
标签: python python-2.7 parsing text-files