Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
csv列表索引超出范围-python_Python_Csv - Fatal编程技术网

csv列表索引超出范围-python

csv列表索引超出范围-python,python,csv,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

我试图获取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

你不能只从文件中读取两次
sum(数据中的行为1)
已经读取了所有数据,因此
data=list(data)
是一个空列表,因为文件指针位于文件的末尾,除非将文件倒回起始位置,否则不会返回更多数据

您甚至不需要使用
sum()
调用,将其删除。使用
list()
后,您可以使用
len(数据)
获得相同的计数:

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)

谢谢你的详细回答,不管怎样,我可以先计算行数,然后读取单元格值吗?如何倒带文件??thanks@panda001:你为什么要先这么做?读取文件数据两次既慢又低效。@panda001:
csvfile.seek(0)
将返回到开始。感谢Martijin,我需要稍后执行for循环以将单元格值发送到数据库,因此我需要知道必须发送多少数据