前段时间我开始研究一个简单的程序了,我已经重新开始了。我在这里尝试做的是使用索引来操作CSV打印数据的顺序。当我运行此代码时,我得到“IndexError:list index超出范围”。我做错了什么或错过了什么?提前谢谢。
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)]
答案 0 :(得分: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 :(得分:1)
您的错误看起来就像是最后一行代码。看起来你的循环遇到一个带有0个字段的空行,所以row [index]抛出了IndexError。或者该行只有1个字段,因此当index为1时,row [index]会抛出错误。这样可以解决它:
if len(row) >= 2:
print [row[index] for index in (1, 0)]