我有一个超过2亿行的大文本文件。它被分成大约50000行的块。我需要做的是用来自第一个块的10-100行替换所有块中的10-100行。任何想法如何去做?
提前致谢
答案 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)