如何删除非常大的文本文件中的每一行?

问题描述 投票:0回答:1

我有一个非常大的文本文件,我想删除每一行。我怎样才能有效地做到这一点?

我写了这样的代码:

_file = open("merged_DGM.txt", "r")
text = _file.readlines()
for i, j in enumerate(text):
    if i % 2 == 0:
       del text[i]

 _file.close()
 _file = open("half_DGM.txt", "w")
 for i in text:
    _file.write(i)

_file.close()

它适用于小文本文件。但对于大文件,它会将整个文本加载到变量中。 10分钟后,它无法解决问题。

任何建议,将不胜感激。

python-3.x text edit
1个回答
3
投票

file object returned by open iherits from io.IOBase and can be iterated。通过直接迭代文件,您可以避免将整个文件一次性加载到内存中。

with open("merged_DGM.txt", "r") as in_file and open("half_DGM.txt", "w") as out_file:
    for index, line in enumerate(in_file):
        if index % 2:
            out_file.write(line)
© www.soinside.com 2019 - 2024. All rights reserved.