Python-每第n行写入一个新文件

Python-每第n行写入一个新文件,python,Python,我有一长串订户。现在,我正在将它们全部写入一个csv文件。我想把它们分开,这样每第1000行我就创建一个新文件并开始写入,依此类推直到完成 当前代码: with open(path, mode='w', newline='') as filename: writer = csv.writer( filename, delimiter=';', quotechar='"', quotin

我有一长串订户。现在,我正在将它们全部写入一个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']])

如何扩展此功能以获得所需的功能?

您可以将订户列表分块:

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']])
请记住在每次迭代中更改文件名,以免覆盖文件


注意:我从中获得了这个chunk方法。它就像一个符咒

制作简单的计数器。如果计数器>1000:则创建新文件并重置。看起来非常方便和优雅!