Операции над файлами

Операции над файлами

Limera1n

Поговорим более подробно о режимах открытия файлов.

Режимов у нас есть несколько:

mode='r' - режим только для чтения, записать мы ничего не сможем в него.

mode='w' - режим записи, мы можем только записать в него, если мы попробуем его прочитать - получим ошибку. Так же если мы откроем существующий файл, в котором уже что-то было с данным режимом, то содержимое будет затерто. Если файл не существовал то он будет создан.

mode='a' - режим "добавить", от англ. append, то есть добавить в конец, и если будем читать в этом режиме, то увидим ошибку. Так же будет ошибка, если мы будем добавлять данные в файл, который не существует.

mode='r+' - открываем файл и на чтение и на запись, однако файл при открытии в таком режиме должен уже существовать.

mode='w+' - мы открываем файл на чтение и на запись, но в отличии от r+, мы перезапишем данные файла, который уже существовал, а если не существовал, то создадим файл автоматически.

Попробуем сделать кое что нехорошее:

Мы открываем файл только для записи, и пытаемся после этого в наглую вызвать функцию read. И получаем ошибку UnsupportedOperation.

Вот и пример того, что если открыть в режиме записи и попытаться прочитать файл - мы получим ошибку.

Попробуем открыть файл в режиме 'a' и добавить в него строчку:

Вот мы видим, что мы добавили в конец файла строчку Name;1122.

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

Вопрос, а каким образом мы можем читать и дописывать файл? Некоторые рекомендуют отдельно открывать на запись и отдельно на чтение, то есть делать 2 операции. Но можно сделать следующим образом:

2 раза нажал на вывод, поэтому 2 строки Blabla

Нам нужно переместить курсор, так как если мы будем записывать в файл, то у нас по умолчанию все будет записываться в самом начале файла. Ноль в данном случае у нас нулевой байт, то есть начало файла. Двойка - означает конец файла, а единица будет означать позицию курсора в данный момент. То есть, мы говорим, что хотим поставить курсор в конец файла (2) с нулевого байта (0).

Попробуем режим 'w+':

Супер, создали новый файл, записали в него абракадабру и сразу же его прочли.

На самом деле режимов больше, но вот эти основные, которые понадобятся. И говорят, что они используются чаще всего, нежели другие. Но о других мы можем поговорить в следующий раз.

Report Page