首页 > 解决方案 > Python CSV:到达空行后循环停止

问题描述

我想读取由我的其他脚本生成的 CSV 文件,我需要同时检查 2 列。问题是我的循环停止了,因为某些行有空值并且它无法达到以下值。例如:

  1. 哈希 1111
  2. 哈希 2222
  3. 哈希 3333
  4. 哈希 4444
  5. 哈希 5555
  6. 哈希
  7. 哈希
  8. 哈希 6666

我无法进一步阅读第 5 点,因为 6 和 7 有空值,我还需要阅读 8。这是我的代码。

import csv

with open('vts.csv') as csvDataFile:
    csvReader = csv.reader(csvDataFile, delimiter=';')
    next(csvReader)  

    VTs = []

    for row in csvReader:
        VT = row       
        VTs.append(VT)

    for row in VTs:
        print(row[0],row[4])

有没有办法在不手动排序 Excel 的情况下继续列出?

标签: python

解决方案


首先,csv 文件不是Excel 文件。前者是文本分隔文件,后者是二进制文件。

接下来,您的问题不在于阅读时间: csv 模块可以轻松地接受其行中具有可变数量字段的文件,包括只会给出空列表的row空行。

所以修复只是:

...
for row in VTs:
    if len(row) > 4:
        print(row[0],row[4])

推荐阅读