首页 > 解决方案 > 到达空列时停止循环

问题描述

我正在处理一个转换为 CSV 文件的 XLSX 文件,它有几列数据。每列之间没有空格,当然,在最后一列之后,只有空单元格。我遍历每一行,每一列,直到最后一列。我正在打印每一列数据。至此,一切正常。

我在这里复制循环开始检查所有列的脚本部分:

start= 0
for line in myfile:
    for col in line:
        if col:
            print("e.g.: PRINTED")
            start+= 1
        elif not col:
            break

我实现了打印所有列,但在最后一列之后,我得到了

IndexError: list index out of range

我不明白为什么它成功打印到最后一列(如我所愿),但之后它并没有停止而是抛出这个错误。

我希望这写得很清楚。感谢帮助!

标签: python-3.xcsvfor-loop

解决方案


您好,Marco,因为在您阅读的最后一列之后,您正试图再次迭代

start+= 1

. 这个问题可以通过稍微调整你的循环来解决。

  • 使用 for 循环代替 foreach 循环。
  • 将您的迭代放在其他地方。

推荐阅读