В приложении в списке находятся аккаунты, которые в цикле (по индексам списка) передаются потокам по одному.
Сам список не меняется в процессе работы программы, собственно если бы менялся, не доходило бы до конца нормально.
Допустим список из 4000 элементов, и вот ошибка
list index out of range
возникает, допустим при прошлом запуске, уже на 167 элементе, а последняя из таких ошибок на 1257 (то есть далее спокойно обрабатывает оставшиеся 2700 элементов)
Из 4000 элементов с такой ошибкой вышло 64
А что самое интересное, в файл иногда записывается элемент из списка по этому индексу, а иногда нет.
for i in range(0, len(self.accounts)):
while current_thread == max_threads:
sleep(0.1)
current_thread += 1
try:
x = threading.Thread(target=self.check_account,
args=(self.accounts[i], token_check, thread_proxy, thread_ua),
daemon=True)
x.start()
except Exception as e:
with open('error\ошибки при запуске потоков.txt', mode='a', encoding='utf-8') as file:
try:
file.write(str(datetime.today()) + '\n' + str(e) + '\n' + 'Акк: ' + self.accounts[i] + '\n' + '\n')
except Exception as e:
file.write(str(datetime.today()) + '\n' + str(e) + '\n' + 'Акк: не получил' + '\n' + '\n')
self.check_count.setText(str(int(self.check_count.text()) + 1))
current_thread -= 1
И вот, что заносится в файл ошибок:
Как видите, очень странно, даже в файл иногда заносится этот элемент списка, то есть за пределы уж точно не вышло, но поток почему-то не запускается.
А иногда и не может получить элемент списка.