【发布时间】:2018-05-25 13:57:31
【问题描述】:
我有一个包含约 2 亿行的大型文本文件。它被分成大约 50000 行的块。我需要做的是用第一个块的第 10-100 行替换所有块的第 10-100 行。有什么想法可以解决这个问题吗?
提前致谢
【问题讨论】:
我有一个包含约 2 亿行的大型文本文件。它被分成大约 50000 行的块。我需要做的是用第一个块的第 10-100 行替换所有块的第 10-100 行。有什么想法可以解决这个问题吗?
提前致谢
【问题讨论】:
使用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)
【讨论】: