parsing CSV file - "IndexError: list index out of range"

parsing CSV file - "IndexError: list index out of range"

我有 14 页的 csv 文档(实际上是 PDF 但已转换为 csv 文件)。 每页有 36 行 - 总行数为 544。 在我需要忽略第 325-347 和 493-507 行之间的行之间(这是正确的 - 如果页面只有 CO= & PAGE 条件)。

Totals Lines - 544
Page Indexes - [0, 36, 72, 108, 144, 180, 216, 252, 288, 348, 384, 420, 456, 508]
[[0, 35], [36, 71], [72, 107], [108, 143], [144, 179], [180, 215], [216, 251], [252, 287], [288, 347], [348, 383], [384, 419], [420, 455], [456, 507], [508, 544]]

使用下面的代码我得到“IndexError:列表索引超出范围”。请提供任何帮助,在此先感谢。

file = ('file name')
with open(file,'r') as fp:
    csv_reader = list(csv.reader(fp))
    num_rows = len(csv_reader)
    print("Totals Lines - " +str(num_rows))
    page_indexes = [ i for i in range(num_rows) if (('PAGE' in csv_reader[i]) and (csv_reader[i][0].strip() == 'CO='))]
    print("Page Indexes - " + str(page_indexes))
    page_nums = [ [ page_indexes[i], page_indexes[i+1]-1 ] for i in range(len(page_indexes))] 
    print(page_nums)

enter image description here

page_nums 的列表理解的最后一次迭代中,没有 page_indexes[i+1],因为 i 是最后一个元素的索引。你需要在那之前停下来。然后可以单独添加最后一页索引。

page_nums = [ [ page_indexes[i], page_indexes[i+1]-1 ] for i in range(len(page_indexes)-1)] 
page_nums.append([page_indexes[-1], num_rows-1])