[英]Python - Write to new file every nth row
我的訂閱者名單很長。 現在,我將它們全部寫入一個csv文件。 我想將它們拆分,以便每第1000行創建一個新文件並開始寫入該文件,依此類推直到完成。
當前代碼:
with open(path, mode='w', newline='') as filename:
writer = csv.writer(
filename,
delimiter=';',
quotechar='"',
quoting=csv.QUOTE_MINIMAL
)
writer.writerow(['email', 'name'])
for subscriber in subscribers:
writer.writerow([subscriber['Email'], subscriber['Name']])
如何延長這個拿到functionaly我需要什么?
您可以分塊訂閱者列表:
def chunks(l, n):
"""Yield successive n-sized chunks from l."""
for i in xrange(0, len(l), n):
yield l[i:i + n]
for subscribers_thousand in chunks(subscribers, 1000):
# Remember to change path for each 1000 subscribers chunk
with open(path, mode='w', newline='') as filename:
writer = csv.writer(
filename,
delimiter=';',
quotechar='"',
quoting=csv.QUOTE_MINIMAL
)
for subscriber in subscribers_thousand:
writer.writerow([subscriber['Email'], subscriber['Name']])
請記住,在每次迭代中都要更改文件名,以免覆蓋文件。
注意:我從SO中的本主題獲得了此塊方法。 它像一個魅力
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.