大文本编辑,粘贴替换

时间:2018-05-25 13:57:32

标签: python text editing

我有一个超过2亿行的大文本文件。它被分成大约50000行的块。我需要做的是用来自第一个块的10-100行替换所有块中的10-100行。任何想法如何去做?

提前致谢

1 个答案:

答案 0 :(得分:0)

使用list。首先将要使用的行从第一个块读入列表。接下来,逐行逐个读取每个其他文件,并将它们写入新文件,但如果行号在1-100之间,则使用列表中的行。实现目标的示例:

fnames = ["file1.txt", "file2.txt", "file3.txt"]

sub_list_start = 9
sub_list_end = 100

file1_line_10_to_100 = []

with open(fnames[0]) as f:
    for i, line in enumerate(f.readlines()):
        if i >= sub_list_start and i < sub_list_end:
            file1_line_10_to_100.append(line)
        if i >= sub_list_end:
            break

for fname in fnames[1:]:
    with open(fname) as f:
        with open(fname + '.new', 'w') as f_out:
            for i, line in enumerate(f.readlines()):
                if i >= sub_list_start and i < sub_list_end:
                    f_out.write(file1_line_10_to_100[i - sub_list_start])
                else:
                    f_out.write(line)