尝试从CSV索引数据

2024-09-22 20:32:40 发布

您现在位置:Python中文网/ 问答频道 /正文

前一段时间我开始做一个简单的程序,现在我又开始做了。我在这里要做的是使用索引来操作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)]

Tags: csv数据代码in程序forindex顺序
2条回答

您的错误似乎位于代码的最后一行。看起来您的循环遇到了一个0字段的空行,因此row[index]抛出索引器错误。或者该行只有1个字段,所以当index为1时,row[index]抛出错误。这样可以解决问题:

if len(row) >= 2:
    print [row[index] for index in (1, 0)]

根据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

相关问题 更多 >