【问题标题】:large text editing, paste replace大文本编辑,粘贴替换
【发布时间】:2018-05-25 13:57:31
【问题描述】:

我有一个包含约 2 亿行的大型文本文件。它被分成大约 50000 行的块。我需要做的是用第一个块的第 10-100 行替换所有块的第 10-100 行。有什么想法可以解决这个问题吗?

提前致谢

【问题讨论】:

    标签: python text editing


    【解决方案1】:

    使用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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 2014-05-21
      相关资源
      最近更新 更多