簡體   English   中英

Python-每第n行寫入一次新文件

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM