Файлы
Файл - это набор данных во внешней памяти, имеющий имя.
В Python существует два типа файлов:
-
текстовые, который содержит текст, разбитый на строке; из специальных символов в текстовых файлах могут быть только символы перехода на новую строку ("
\n
") и возврата в начало строки ("
\r
");
-
двоичные, в которых хранятся любые двоичные данные без ограничений (например, рисунки, звуки, видеофильмы и т.д.).
Далее будем рассматривать работу с текстовыми файлами.
Принцип работы с файлом из программы
Состоит из трех этапов:
1. открытие файла;
2. работа с файлом;
3. закрытие файла.
Такой принцип работы называют
"принципом сэндвича".
При открытии файла указывают режим работы: чтение, запись или добавление данных в конец файла. Открытый файл блокируется и другие программы не могут к нему обращаться. После работы с файлом необходимо его закрыть, чтобы разорвать связь с программой. При закрытии файла все изменения, сделанные программой в этом файле, записываются на диск. В языке Python работа с файлами происходит через файловые переменные.
Функция
open()
позволяет
открыть файл и возвращает файловую переменную, через которую можно обращаться к файлу.
f = open(file_name, access_mode)
,
где:
-
file_name
- имя открываемого файла
-
access_mode
- режим открытия файла. Он может быть: для чтения, записи и т. д. По умолчанию используется режим чтения (r), если другое не указано.
Полный список режимов открытия файла
Режим |
Описание |
r |
Только для чтения. |
w |
Только для записи. Создаст новый файл, если не найдет с указанным именем. |
rb |
Только для чтения (бинарный). |
wb |
Только для записи (бинарный). Создаст новый файл, если не найдет с указанным именем. |
r+ |
Для чтения и записи. |
rb+ |
Для чтения и записи (бинарный). |
w+ |
Для чтения и записи. Создаст новый файл для записи, если не найдет с указанным именем. |
wb+ |
Для чтения и записи (бинарный). Создаст новый файл для записи, если не найдет с указанным именем. |
a |
Откроет для добавления нового содержимого. Создаст новый файл для записи, если не найдет с указанным именем. |
a+ |
Откроет для добавления нового содержимого. Создаст новый файл для чтения записи, если не найдет с указанным именем. |
ab |
Откроет для добавления нового содержимого (бинарный). Создаст новый файл для записи, если не найдет с указанным именем. |
ab+ |
Откроет для добавления нового содержимого (бинарный). Создаст новый файл для чтения записи, если не найдет с указанным именем. |
Метод
close()
позволяет
закрыть файл.
Пример
Fin = open("input.txt")
Fout = open("output.txt")
# что-то делаем с файлами
Fout.close()
Fin.close()
Если существующий файл открывается на запись, то его содержимое уничтожается. После окончания работы программы все открытые файлы закрываются автоматически.