[英]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.