Комментарии (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}")
Ключевые моменты
- Всегда используй
with— это гарантирует закрытие файла - Указывай кодировку — utf-8 работает в большинстве случаев
- Закрывай файл явно, если не используешь
with:file.close() - Проверяй существование файла перед открытием
- Обрабатывай исключения (FileNotFoundError, IOError)
- Используй
pathlib.Pathдля кроссплатформенной работы с путями