Небольшой код для удаления отработанных ссылок из общего списка:
with open("lots.txt", "r") as f:
lots = f.readlines()
print('All lots: {}\nTo removing: {}'.format(len(lots), len(loaded)))
for url in loaded:
try:
lots.remove(url.split(' ')[-1])
print('Removed: {}'.format(url.split(' ')[-1]))
except ValueError:
pass
with open("upd_lots.txt", "w") as new_f:
for lot in lots:
new_f.write(lot)
>>> print(type(lots))
<class 'list'>
>>> print(type(loaded))
<class 'list'>
>>>
При запуске скрипта в командной строке:
All lots: 7812589
To removing: 63607
Больше ничего: ни ошибок, ни вывода
print('Removed: {}'.format(url.split(' ')[-1])).
В диспетчере задач скрипт успешно съел ~1гб ОЗУ и по чуть-чуть крутит процессор в районе 15-17%.
В связи с этим не могу понять: он завис, или просто по какой-то причине не выводится
print('Removed: {}'.format(url.split(' ')[-1])). Пробовал как в WPS так и в командной строке - результат одинаковый.
UPD. Добавил в except
print('There is no such line: {}'.format(url.split(' ')[-1])) получилось, что не находит строки. Распечатал принтом по одному элементу из lots и loaded - в lots в конце строки спец. символ \n, видимо он и мешает. Только вот не знаю как его убрать, подскажет кто?