
第一种: 把数据全部加载到内存
import csv
def write(filepath, data):
with open(filepath, 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow([
'header1',
'header2',
])
for item in data:
writer.writerow([
item[0],
item[1],
])
return filepath
第二种: 使用生成器
import csv
def write_with_generator(filepath):
with open(filepath, 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow([
'header1',
'header2',
])
while True:
data = (yield)
if data is None: # stop generator
yield filepath
break
else:
for item in data:
writer.writerow([
item[0],
item[1],
])
_write = write_with_generator(filepath)
_write.__next__()
for data in all_data:
_write.send(data)
filepath = _write.__next__()




近期评论