python - IndexError: list index out of range, in CSV 但如果我打印 row[index] 它可以工作
问题描述
我有一个 CSV 和以下代码:
with open("results.csv", 'rt', encoding='UTF-8', errors='ignore') as file:
reader = csv.reader(file, skipinitialspace=True, escapechar='\\')
A = 0
for row in reader:
if row[4] in validclubs and "A" in row[0]:
A = A + 1
print(A)
但它返回:
Traceback (most recent call last):
if row[4] in validclubs and "A" in row[0]:
IndexError: list index out of range
.
但是,如果我将代码更改为:
with open("results.csv", 'rt', encoding='UTF-8', errors='ignore') as file:
reader = csv.reader(file, skipinitialspace=True, escapechar='\\')
A = 0
for row in reader:
if row[4] in validclubs and "A" in row[0]:
print(A)
它将print(A)
正确并返回相同的错误。因此,它不会超出范围,因为它可以正确打印。那么是什么导致了错误呢?
解决方案
似乎该错误不是由第一次满足条件引起的,而是由第二次(或更晚)时间引起的。因此,您设法打印一次“A”,然后才遇到错误。
推荐阅读
- javascript - DiscordJs 向特定的文本频道发送消息
- python - Python return 语句不会中断 for 循环
- google-cloud-platform - 使用 roles/storage.legacyBucketWriter 在存储桶中读/写是不是很糟糕?
- c# - 尽管在 Visual Studio 中使用了带有 Microsoft.NET.Sdk.Web 的 OutputType WinExe,但仍显示控制台窗口
- html-email - 有没有办法将一些文本从电子邮件复制到剪贴板?
- excel - 在一个pdf中组合多个范围
- angular - Angular http.post 多个数组并添加行
- amazon-web-services - AWS 中的虚拟机中的 Docker
- php - Laravel 7 - 如何正确显示旧输入/s?
- android - Firebase 云消息传递:禁用弹出通知