@anysofronova

Как удалить некоторые строки из файла?

У меня есть текстовый файл в котором более 1,1 миллиарда строк и есть список в котором хранятся номера строк, которые мне не нужны (их около 100 млн)
Как наименее затратно по времени удалить ненужные строки или создать новый файл в который перенести все строки кроме тех. которые мне не нужны?
Самый простой способ это сделать вот так
with open(output_file, 'a') as fan:
    other_file = open('ALL.txt', 'r')
    for i, line in enumerate(other_file):
        if i not in edit_points:
            fan.write(line)

где other_file - это файл с миллиардом строк, а edit_points - это список в котором ненужные строки
но это очень медленно
  • Вопрос задан
  • 117 просмотров
Пригласить эксперта
Ответы на вопрос 1
мультипоточность и только она одна спасет
разбиваем входящий файл на чунки по 2000 записей, к примеру
в каждом блоке прибиваем не нужные строки
записываем каждый чунк в новый файл
проблемы будут с записью в файл. поэтому надо использовать этот рецепт
дорогу осилит идущий :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы