我尝试用csv.DictReader打开一个csv文件,只读入前5行数据,执行我脚本的主要过程,然后读入下5行并对它们执行相同的操作。
我相信我有一个有效的方法,但我有问题的最后一行数据不处理。我知道我需要修改我的if语句,使它也检查我是否在文件的末尾,但我有困难找到一种方法来做到这一点。我已经找到了方法在线,但它们涉及阅读整个文件以获得行计数,但这样做会破坏此脚本的目的,因为我正在处理内存问题。
以下是我到目前为止所做的:
import csv
count = 0
data = []
with open('test.csv') as file:
reader = csv.DictReader(file)
for row in reader:
count +=1
data.append(row)
if count % 5 == 0 or #something to check for the end of the file:
#do stuff
data = []
字符串
谢谢你的帮助!
4条答案
按热度按时间3zwtqj6y1#
阅读csv时可以使用
chunksize
参数。这将逐步读取行数:字符串
ny6fqffe2#
您可以处理
for
循环体之后的其余行。您也可以使用更pythonic的enumerate
。字符串
考虑到文件
型
输出
型
3zwtqj6y3#
这是一种使用迭代器的方法
例如:
字符串
tpgth1q74#
保持沿着你所写的路线,不包括任何其他进口:
字符串
if语句允许数组在开始处理之前加载5个元素。
型