Исходный файл: 7,748,982 строк со ссылками
Файл с отработанными ссылками: 3,955,464 строк со ссылками
Задача: удалить отработанные ссылки из исходного.
На данный момент все это выглядит так:
with open('nohup.txt', 'r', encoding='utf-8') as nh:
nohup = nh.read().split('\n')
with open("lots.txt", "r", encoding='utf-8') as ls:
lots = ls.read().split('\n')
for url in nohup:
lots.remove(url)
with open("upd_lots.txt", "w") as ul:
for lot in lots:
ul.write(lot + '\n')
Т.е. я целиком загружаю оба файла в список, затем циклом прохожусь по списку отработанных ссылок и удаляю их из общего списка, после чего записываю все это в новый файл.
При тестовом запуске скорость удаления составляла ~6000 строк в минуту, т.е. такое решение в один поток будет отрабатывать около 10 часов. Да, я могу запустить 10-20-50 потоков и значительно ускорить обработку, но все-же хочется узнать есть-ли более быстрое решение моей задачи помимо разгона методом добавления новых потоков?