Я не могу придумать никаких причин, почему это действительно зло, но возможные возражения против этого могут включать:
Трудно гарантировать, что каждый дескриптор файла будет закрыт, когда вы закончите. Использование дескриптора файла с менеджером контекста (см. Синтаксис with open(filename) as file_handle:
) всегда гарантирует закрытие дескриптора файла, даже если что-то идет не так.
Хранение большого количества файлов, открытых одновременно, может быть невежливым, если вы собираетесь их долго открывать, а другая программа пытается получить доступ к файлам.
Здесь сказано - почему вы хотите оставить целую кучу файлов открытыми для записи? Если вы время от времени записываете в кучу файлов, лучший способ сделать это - открыть файл, записать в него, а затем закрыть его , пока вы не будете готовы к повторной записи.
Все, что вам нужно сделать, это открыть файл в режиме append - open(filename,'a')
. Это позволяет вам записывать в конец существующего файла, не стирая то, что уже есть (например, режим 'w'
.)
Edit (1) Я немного неправильно понял ваш вопрос - я думал, что вы хотите открыть эти файлы для записи , а не чтения. Держать кучу файлов открытыми для чтения не так уж и плохо.
Если у вас есть открытые файлы, потому что вы хотите отслеживать файлы на предмет изменений , попробуйте использовать эквивалент вашей платформы Linux inotify
, который сообщит вам , когда файл имеет изменилось (без необходимости повторного просмотра.)