Операционная система имеет ограничение на количество открытых файлов процессом и вы быстро можете дойти до этого предела.
import osЧтобы узнать лимит на Linux вызовите команду
lst = []
for i in range(100000):
lst.append(open(os.devnull, 'w'))
OSError: [Errno 24] Too many open files: 'nul'
ulimit -n(Полный список лимитов
ulimit -a)Изменить лимит можно командой
ulimit -n 2048На Windows можно это сделать с помощью кода
>>> import ctypes➡️ Отсюда вывод: Всегда явно закрывайте файлы! Иначе можете упереться в ограничения системы.
>>> ctypes.windll.msvcrt._getmaxstdio()
512
>>> ctypes.windll.msvcrt._setmaxstdio(2048)
2048
#tricks