簡體   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