Файловые дескрипторы
Python предполагает, что каждый файл скрыт за объектом соответствующего класса.
Конечно, трудно не спросить, как интерпретировать слово "соответствующего".
Файлы можно обрабатывать разными способами - некоторые из них зависят от содержимого файла, другие - от намерений программиста.
В любом случае разные файлы могут требовать разных наборов операций и вести себя по-разному.
Объект соответствующего класса создается, когда Вы открываете файл и уничтожаете его во время закрытия.
Между этими двумя событиями Вы можете использовать объект, чтобы указать, какие операции должны выполняться в конкретном потоке. Операции, которые Вам разрешено использовать, навязываются способом, которым вы открыли файл.
В общем, объект происходит из одного из классов, показанных здесь:
Примечание: Вы никогда не используете конструкторы для создания этих объектов. Единственный способ создать их - это вызвать функцию с именем open()
.
Функция анализирует предоставленные Вами аргументы и автоматически создает необходимый объект.
Если Вы хотите избавиться от объекта, вы вызываете метод с именем close()
.
Вызов разорвет соединение с объектом/файлом и удалит объект.
В наших целях мы будем касаться только потоков, представленных объектами BufferIOBase
и TextIOBase
. Вы скоро поймете, почему.