🔖 Справочник команд и синтаксиса

⚡ Краткий справочник

  • open(file, mode="r", encoding="utf-8") — открыть файл.
  • "r", "w", "a", "x", "b", "+" — режимы открытия.
  • with open(...) as f: — контекстный менеджер, авто-закрытие.
  • f.read(), f.readline(), f.readlines() — чтение.
  • f.write(text), f.writelines(list) — запись.
  • encoding="utf-8" — кодировка для текстовых файлов.

Режимы открытия файла

РежимЧто делаетПример
"r" Чтение текста. Файл должен существовать. open("data.txt", "r", encoding="utf-8")
"w" Запись текста. Создаёт или перезаписывает файл. open("out.txt", "w", encoding="utf-8")
"a" Добавление в конец файла. open("log.txt", "a", encoding="utf-8")
"x" Создание нового файла. Ошибка, если файл существует. open("new.txt", "x", encoding="utf-8")
"b" Бинарный режим. Комбинируется с r/w/a/x. open("img.jpg", "rb")
"t" Текстовый режим (по умолчанию). open("data.txt", "rt", encoding="utf-8")
"r+" Чтение и запись. Файл должен существовать. open("data.txt", "r+", encoding="utf-8")
"w+" Запись и чтение. Перезаписывает файл. open("data.txt", "w+", encoding="utf-8")
"a+" Добавление и чтение. open("log.txt", "a+", encoding="utf-8")

Методы чтения

МетодЧто возвращаетКогда использовать
f.read() Всё содержимое файла одной строкой. Файл небольшой, нужен весь текст.
f.read(n) Первые n символов. Чтение больших файлов по частям.
f.readline() Одну строку, включая \n. Построчная обработка.
f.readlines() Список строк, включая \n. Нужен список для дальнейшей обработки.
for line in f: Строки по одной, лениво. Большие файлы, экономия памяти.

Методы записи

МетодЧто делаетПримечание
f.write(text) Записывает строку в файл. Не добавляет \n автоматически.
f.writelines(lines) Записывает список строк подряд. Символы \n должны быть внутри строк.

Конструкция with open(...)

КонструкцияОписаниеПример
with open(...) as f: Открывает файл и автоматически закрывает его. with open("a.txt", "r") as f: print(f.read())
with open(...) as f1, open(...) as f2: Открывает несколько файлов одновременно. with open("in.txt") as inp, open("out.txt", "w") as out: ...

Распространённые кодировки

КодировкаОписаниеКогда использовать
utf-8 Универсальная кодировка, поддерживает все языки. По умолчанию в Python 3, рекомендуется всегда.
cp1251 Кодировка Windows для русского языка. Старые файлы из Windows-программ.
ascii Только английские символы 0–127. Устаревшая, почти не используется.
utf-16 Двухбайтовая кодировка. Некоторые Windows-файлы.
iso-8859-1 Latin-1, западноевропейские языки. Специфические старые файлы.

Связанные исключения

ИсключениеПричинаЧто делать
FileNotFoundError Файл не найден при открытии на чтение. Проверить путь или обернуть в try/except.
FileExistsError Файл уже существует при режиме "x". Проверить имя файла или обработать исключение.
UnicodeDecodeError Неверная кодировка при чтении. Указать правильную encoding.
PermissionError Нет прав на чтение или запись. Проверить права доступа к файлу.
⚠️ Проверить по документации: исключение PermissionError не упоминается в исходной лекции, но является стандартным исключением Python при работе с файлами.

Частые паттерны

# 1. Прочитать весь файл
with open("data.txt", "r", encoding="utf-8") as file:
    text = file.read()

# 2. Прочитать построчно
with open("data.txt", "r", encoding="utf-8") as file:
    for line in file:
        process(line.strip())

# 3. Записать список строк
lines = ["first\n", "second\n"]
with open("out.txt", "w", encoding="utf-8") as file:
    file.writelines(lines)

# 4. Дописать в конец
with open("log.txt", "a", encoding="utf-8") as file:
    file.write("new event\n")

# 5. Скопировать файл
with (
    open("source.txt", "r", encoding="utf-8") as src,
    open("dest.txt", "w", encoding="utf-8") as dst,
):
    dst.write(src.read())