Файловые потоки
Открытие потока не только связано с файлом, но также должно объявлять способ обработки потока. Это объявление называется режимом открытия.
Если открытие прошло успешно, программе будет разрешено выполнять только те операции, которые соответствуют объявленному режиму открытия.
В потоке выполняются две основные операции:
- чтение из потока: части данных извлекаются из файла и помещаются в область памяти, управляемую программой (например, переменная);
- запись в поток: части данных из памяти (например, переменная) переносятся в файл.
Для открытия потока используются три основных режима:
- режим чтения: поток, открытый в этом режиме, разрешает только операции чтения; попытка записи в поток вызовет исключение (исключение называется UnsupportedOperation, которое наследует OSError и ValueError и поступает из модуля io);
- режим записи: поток, открытый в этом режиме, позволяет только операции записи; попытка прочитать поток вызовет исключение, упомянутое выше;
- режим обновления: поток, открытый в этом режиме, позволяет как писать, так и читать.
Прежде чем мы обсудим, как управлять потоками, мы должны Вам кое-что объяснить. Поток ведет себя почти как магнитофон.
Когда Вы читаете что-либо из потока, виртуальная головка перемещается по потоку в соответствии с количеством байтов, переданных из потока.
Когда Вы записываете что-то в поток, одна и та же головка движется вдоль потока, записывая данные из памяти.
Всякий раз, когда мы говорим о чтении и записи в поток, попытайтесь представить эту аналогию. В книгах по программированию этот механизм называется текущей позицией файла, и мы также будем использовать этот термин.
Теперь необходимо показать вам объект, отвечающий за представление потоков в программах.