簡體   English   中英

Python CSV:IndexError:列表索引超出范圍

[英]Python CSV: IndexError: List Index out of range

我在使用 csv 時遇到了非常奇怪的問題。 我的代碼是:

        with open('CFD.csv', 'rt') as f:
            reader = csv.reader(f, delimiter=',')
            for row in reader:
                if cfd_number == row[0]:
                    cfd_checked_before = "Yes"

此代碼在 Mac 中有效,但在 Windows 中,出現以下錯誤:

IndexError: List Index out of range

那里可能有一些可能的情況......

  • 也許您在 Windows 中打開的 csv 文件甚至與您在 Mac 中使用的 csv 文件不同
  • 也許問題出在行 [0]
  • 也許您的 csv 文件不包含任何逗號分隔符,或者某些行如上所述有一個空行。

嘗試打印變量甚至讀取器變量

在 csv 文件中有空行是很常見的,尤其是在文件末尾。 如果您希望您的代碼接受此常見錯誤,只需在使用前檢查行列表即可。

with open('CFD.csv', 'rt') as f:
    reader = csv.reader(f, delimiter=',')
    for row in reader:
        if row:
            if cfd_number == row[0]:
                cfd_checked_before = "Yes"

您還可以將filter用於相同的任務。 當它的第一個參數是 None 時,它​​會刪除諸如空列表之類的“虛假”內容:

with open('CFD.csv', 'rt') as f:
    reader = csv.reader(f, delimiter=',')
    for row in filter(None, reader):
        if cfd_number == row[0]:
            cfd_checked_before = "Yes"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM