您应该将最后一个开口移出循环。你有几个虫子,所以我做了一些整理。。。
import csv
chunk = set()
for result in source:
chunk.append(result)
if len(chunk >= 1000):
with open('file.csv', 'a') as csvfile:
csv.writer(csvfile).writerows([element] for element in chunk)
chunk = set()
if chunk:
with open('file.csv', 'a') as csvfile:
csv.writer(csvfile).writerows([element] for element in chunk)
chunk = set()
如果不喜欢两次写入save逻辑,可以使用两个循环
import csv
chunk = set()
source_iter = iter(source)
have_data = True
while have_data:
for result in source_iter:
chunk.append(result)
if len(chunk >= 1000):
break
else:
have_data = False
with open('file.csv', 'a') as csvfile:
csv.writer(csvfile).writerows([element] for element in chunk)
chunk = set()