Python CSV:索引器:列表索引超出范围

Python CSV:索引器:列表索引超出范围,python,csv,Python,Csv,我在使用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中工作,但在

我在使用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文件不包含任何逗号分隔符,或者某些行中有一个空行

尝试打印变量,甚至打印读卡器变量

可能存在一些可能的情况

  • 可能您正在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"
您还可以对同一任务使用
过滤器
。当其第一个参数为“无”时,它会删除空列表之类的“错误”内容:

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"

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"
您还可以对同一任务使用
过滤器
。当其第一个参数为“无”时,它会删除空列表之类的“错误”内容:

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"

您的CSV是否有空行?在测试之前尝试打印(行),看看你得到了什么。是的,csv文件中有一些空行你的csv有空行吗?在测试之前,试着打印(行),看看你得到了什么。是的,在csv文件中有一些空行有趣的观察,但这些应该在问题的评论部分。答案是真正能回答问题的东西。明白了,谢谢!我是一个新的投稿人,我下次会试试。。是的,csv文件中有一些空文件。有趣的观察,但这些应该在问题的评论部分。答案是真正能回答问题的东西。明白了,谢谢!我是一个新的投稿人,我下次会试试。是的,csv文件中有一些空文件