Module (22%)
Section (42%)

Файловые дескрипторы

Python предполагает, что каждый файл скрыт за объектом соответствующего класса.

Конечно, трудно не спросить, как интерпретировать слово "соответствующего".

Файлы можно обрабатывать разными способами - некоторые из них зависят от содержимого файла, другие - от намерений программиста.

В любом случае разные файлы могут требовать разных наборов операций и вести себя по-разному.

 

Объект соответствующего класса создается, когда Вы открываете файл и уничтожаете его во время закрытия.

Между этими двумя событиями Вы можете использовать объект, чтобы указать, какие операции должны выполняться в конкретном потоке. Операции, которые Вам разрешено использовать, навязываются способом, которым вы открыли файл.




В общем, объект происходит из одного из классов, показанных здесь:

The origin of objects: IOBase, RawIOBase, BufferedIOBase, TextIOBase


Примечание: Вы никогда не используете конструкторы для создания этих объектов. Единственный способ создать их - это вызвать функцию с именем open().

Функция анализирует предоставленные Вами аргументы и автоматически создает необходимый объект.

 

Если Вы хотите избавиться от объекта, вы вызываете метод с именем close().

Вызов разорвет соединение с объектом/файлом и удалит объект.

В наших целях мы будем касаться только потоков, представленных объектами BufferIOBase и TextIOBase. Вы скоро поймете, почему.