csv列表索引超出范围 - python

时间:2017-10-16 19:19:41

标签: python csv

我试图获取csv文件中的特定单元格值并计算行数,但如果我在读取特定单元格之前计算数字,则会出现错误 我的代码是:

import os
import sys
import csv

with open('C:\Users\Administrator\Desktop\python test\update_test\datalog.csv','rb') as csvfile:
    data= csv.reader(csvfile)
    row_count=sum(1 for row in data)
    data=list(data)
    text=data[0][0]
    print(text)

    print row_count

1 个答案:

答案 0 :(得分:1)

您不能只从文件中读取两次。 sum(1 for row in data)已经读取了所有数据,因此data = list(data)是一个空列表,因为文件指针位于文件的末尾,除非您将文件回放到开头,否则不会返回更多数据。 / p>

您甚至不需要使用sum()来电,删除它。使用len(data)后,您可以使用list()获得相同的计数:

with open('C:\Users\Administrator\Desktop\python test\update_test\datalog.csv','rb') as csvfile:
    data= csv.reader(csvfile)
    data = list(data)
    text = data[0][0]
    print(text)
    print len(data)