首页 > 解决方案 > fetch后如何在for循环中每10,000条记录后创建多个文件?

问题描述

我有大约 1,000,000 条记录,我想循环并在大约 10 个不同的文件中写入内容。

以下是我成功创建单个大文件的代码:

f = open("c:\temp\filename", 'w+')
# write to file
for rec in full_data:
    f.write(rec[0])
    f.write("\n")

我想创建 10 个文件,每个文件中有 100,000 条记录。

我尝试创建多个文件,但这将为每一行创建文件:

for index, line in enumerate(full_data):
    with open('filename{}.txt'.format(index), 'w') as output:
        output.write(line[0])

请让我知道如何为 100,00 条记录创建每个文件。

标签: pythonfor-loopfile-readfile-processing

解决方案


这是因为在每次 cicle 迭代中,您都在创建一个新文件作为输出,仅在必要时才尝试这样做。

例如,以下代码每三个项目创建一个文件:

>>> data = [1,2,3,4,5,6,7,8,9,10]
>>> output = open('filename0.txt', 'w')
>>> for index, line in enumerate(data):
...     if index % 3 == 0:
...             output = open('filename{}.txt'.format(index), 'w')
...     output.write(str(line) + "\n")

推荐阅读