Освой Python играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Python: Работа с файлами

Рассмотрим работу с файлами: открытие, закрытие, чтение и запись.

Прежде чем приступать к работе с файлом, его следует открыть при помощи функции open().


f = open('cat.txt', 'r')

В первом аргументе указывается имя файла. Путь к файлу может быть относительным или абсолютным.

Во втором аргументе указывается режим открытия файла.

Список режимов:

  • r - открытие на чтение (по умолчанию)
  • w - открытие на запись, содержимое файла удаляется, если файла не существует, то создаётся новый
  • x - открытие на запись, если файла не существует, иначе исключение
  • a - открытие на запись в конец файла
  • b - открытие в двоичном режиме
  • t - открытие в текстовом режиме (по умолчанию)
  • + - открытие на чтение и запись

Режимы могут быть объединены. По умолчанию режим равен rt (чтение текстового файла). Для чтения в двоичном режиме используйте режим rb.

Третий параметр используется для кодировки при работе в текстовом режиме чтения файла.

После окончания работы с файлом, его нужно обязательно закрыть через метод close().

Создание файла и запись в него

Создадим файл с указанным именем и запишем в него две строчки текста при помощи метода write(). Я проделал это в режиме REPL.


file = open ('D:\cat.txt', 'w')
file.write("First Line \n")
file.write("Second Line")
file.close()

При вводе в режиме REPL после ввода команды write() выводится возвращаемое значение метода - количество записанный в файл байт.

Параметр w в методе open() означает write, т.е. мы открываем файл в режиме записи. Метод возвращает объект TextIOWrapper.


file = open ('D:\cat.txt', 'w')
type(file)
# <class 'TextIOWrapper'>

Чтение файла

Прочитаем созданный файл. Есть два варианта: прочитать весь файл сразу целиком или считывать построчно.


file = open('D:\cat.txt', 'r')
print(file.read()) # читаем целимом

#print(file.readline()) # построчно
#print(file.readline())

file.close()

В методе можно указать число символов для чтения (целое число).


file.read(2)
Реклама