尝试从CSV索引数据

时间:2011-12-08 05:57:34

标签: python indexing

前段时间我开始研究一个简单的程序了,我已经重新开始了。我在这里尝试做的是使用索引来操作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)]

2 个答案:

答案 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)]