繁体   English   中英

python批量读取csv文件

[英]python batch reading of csv file

我正在尝试批量读取csv文件并通过一些回调处理该批处理。

import csv

with open('file.csv', 'r') as csvfile:
    reader = csv.reader(csvfile)
    header = next(reader) # skip header

    batch_size = 3
    batch = []
    count = 0

    for row in reader:
        if count >= batch_size:
            do_something(batch)
            batch = []
            count = 0

        batch.append(row)
        count += 1

假设CSV文件有10行(没有标题),并且batch_size为3 预期结果应为4批次。 3批3行,第4批仅包含1行。 我编写的代码仅产生3批。 如果批次大小为1/2/5/10,则一切正常。

如果行数不能被batch_size而不产生余数,则最后几行的条件count >= batch_size不会变为True

因此,您需要手动清除最后一批/余数。 只需在for循环后添加如下内容:

if batch:
    do_something(batch)

万一最后几行已累积到batch ,这将再次调用您的函数(循环已遍历所有行,您的循环已执行此操作)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM