每50000行拆分一次并用python编写文件

2024-04-20 02:20:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我读了75151行的文件。 我想每五万行分拆一次。 所以我做了两个文件,一个有50000行,另一个有25151行。你知道吗

我做了这样的代码 (插入编号:50000)

 for index, data in enumerate(lines):
   if ((index % INSERT_NUMBER) == 0 and index != 0) or (index == (lines- 1)) : 
           made file ....

哪种方法更适合每50000行分割并生成新文件?你知道吗


Tags: orand文件代码innumberfordata
1条回答
网友
1楼 · 发布于 2024-04-20 02:20:06

这里有一种使用^{}的方法:

from itertools import groupby

out_filename = '/tmp/f{}.txt'
lines_per_file = 50000

with open('infile.txt') as infile:
    for file_number, lines in groupby(enumerate(infile), key=lambda x: x[0] // lines_per_file):
        with open(out_filename.format(file_number), 'w') as outfile:
            outfile.writelines(line for line_number, line in lines)

所以这里的技巧是使用每行的行号,使用整数除法将其分组成块,然后使用分组键作为输出文件名的计数器。你知道吗

比你已经拥有的更好吗?读代码有点复杂,但是当你尝试使用模运算分组时,它不需要处理那些恼人的边缘情况。你知道吗

相关问题 更多 >