首页 > 解决方案 > 如何按每 n 行拆分文件?

问题描述

我知道按行拆分文件,您可以这样做f.readlines(),但是如果我试图按每 n 行拆分文件怎么办?例如,我有一个文件

line1
line2
line3
line4
line5
line6
line7
line8

而不是逐行循环,我想每两行循环一次,所以它会输出

line1
line2

line3
line4

ETC

标签: python

解决方案


当你循环时,你可以得到该行的索引enumerate()并在那里分割

collection = []
sub_collection = []
with open("test.txt") as fh:
    for index, line in enumerate(fh, 1):  # file-likes are iterable by-lines
        sub_collection.append(line)
        if index % 2 == 0:  # modulus is 0 every Nth line
            collection.append("".join(sub_collection))
            sub_collection = []
>>> collection
['line1\nline2\n', 'line3\nline4\n', 'line5\nline6\n', 'line7\nline8\n']

推荐阅读