← Назад к вопросам

Как открыть файл в Python?

1.0 Junior🔥 181 комментариев
#Python Core

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Как открыть файл в Python

Открытие файла в Python — одна из самых базовых операций. Существует несколько способов, от встроенной функции open() до более продвинутых методов с использованием контекстных менеджеров.

Основной способ: встроенная функция open()

Синтаксис функции open():

file = open(filename, mode, encoding)

Где:

  • filename — путь к файлу
  • mode — режим открытия (r, w, a, b и комбинации)
  • encoding — кодировка (обычно utf-8)

Режимы открытия

# "r" — чтение (режим по умолчанию)
file = open("data.txt", "r")

# "w" — запись (перезаписывает содержимое)
file = open("data.txt", "w")

# "a" — добавление в конец файла
file = open("data.txt", "a")

# "x" — создание нового файла (ошибка если существует)
file = open("new_file.txt", "x")

# "b" — бинарный режим (добавляется к режиму)
file = open("image.jpg", "rb")  # читаем бинарный файл

# "+" — одновременно чтение и запись
file = open("data.txt", "r+")  # чтение и запись

Правильный способ: контекстный менеджер (with)

Это рекомендуемый способ, так как он автоматически закрывает файл:

# Чтение файла
with open("data.txt", "r", encoding="utf-8") as file:
    content = file.read()  # прочитать весь файл
    print(content)
# Файл автоматически закрыт

# Чтение построчно
with open("data.txt", "r", encoding="utf-8") as file:
    for line in file:
        print(line.strip())

# Чтение всех строк в список
with open("data.txt", "r", encoding="utf-8") as file:
    lines = file.readlines()
    print(lines)

# Запись в файл
with open("output.txt", "w", encoding="utf-8") as file:
    file.write("Hello, World!\n")
    file.write("Second line\n")

# Добавление в конец файла
with open("output.txt", "a", encoding="utf-8") as file:
    file.write("Third line\n")

Методы чтения файла

with open("data.txt", "r") as file:
    # read() — прочитать весь файл в одну строку
    content = file.read()
    print(type(content))  # <class str>
    
    # readline() — прочитать одну строку
    first_line = file.readline()
    
    # readlines() — прочитать все строки в список
    all_lines = file.readlines()
    print(type(all_lines))  # <class list>

Методы записи файла

with open("output.txt", "w") as file:
    # write() — написать строку
    file.write("Line 1\n")
    file.write("Line 2\n")
    
    # writelines() — написать список строк
    lines = ["Line 3\n", "Line 4\n"]
    file.writelines(lines)

Работа с бинарными файлами

# Чтение бинарного файла
with open("image.jpg", "rb") as file:
    binary_data = file.read()
    print(len(binary_data))  # размер в байтах

# Запись бинарного файла
with open("copy.jpg", "wb") as file:
    file.write(binary_data)

Работа с путями (pathlib)

from pathlib import Path

# Использование Path для работы с путями
file_path = Path("data.txt")

# Проверка существования файла
if file_path.exists():
    with open(file_path, "r", encoding="utf-8") as file:
        content = file.read()

# Или с методом read_text()
content = file_path.read_text(encoding="utf-8")

# Или с методом write_text()
file_path.write_text("Hello, World!", encoding="utf-8")

Обработка ошибок

try:
    with open("nonexistent.txt", "r") as file:
        content = file.read()
except FileNotFoundError:
    print("Файл не найден")
except IOError:
    print("Ошибка при чтении файла")
except Exception as e:
    print(f"Неожиданная ошибка: {e}")

Ключевые моменты

  1. Всегда используй with — это гарантирует закрытие файла
  2. Указывай кодировку — utf-8 работает в большинстве случаев
  3. Закрывай файл явно, если не используешь with: file.close()
  4. Проверяй существование файла перед открытием
  5. Обрабатывай исключения (FileNotFoundError, IOError)
  6. Используй pathlib.Path для кроссплатформенной работы с путями
Как открыть файл в Python? | PrepBro