尝试从CSV索引数据
我之前开始做一个简单的程序,最近又重新开始了。现在我想用一个索引来改变从CSV文件中读取的数据的打印顺序。但是当我运行这段代码时,出现了“IndexError: list index is out of range”的错误。这是我哪里做错了或者漏掉了什么呢?谢谢大家的帮助。
import csv
mags = csv.reader(open("mags.csv","rU"))
for row in mags:
print [titles.upper( ) for titles in row]
print [row[index] for index in (1, 0)]
2 个回答
1
根据csv.reader()的说明,从csv文件中读取的每一行都会以字符串列表的形式返回。我猜你的文件里可能有空的字段或者空行。
所以你可以这样做:
members = csv.reader(open("mags.csv","rU"))
for row in members:
for index in (1, 0):
if index < len(row):
print row[index]
不过你也可以使用:
members = csv.reader(open("mags.csv","rU"))
for row in members:
row.reverse()
for element in row:
print element
1
你的错误看起来出现在代码的最后一行。你的循环可能遇到了一个空行,这个空行没有任何字段,所以当你试图访问 row[index] 时就会出现 IndexError(索引错误)。或者说,这一行只有一个字段,当 index 是 1 的时候,访问 row[index] 也会出错。下面的代码可以解决这个问题:
if len(row) >= 2:
print [row[index] for index in (1, 0)]