Python

Как открыть файл в Python: open(), with, чтение текста и частые ошибки

Самый простой способ открыть файл в Python — использовать функцию `open()` внутри блока `with`.

Ниже — разделы про что нужно подготовить перед запуском, что значит каждая часть open() и как читать файл построчно, чтобы быстро понять устройство материала, практические ограничения и типовые точки отказа.


Самый простой способ открыть файл в Python — использовать функцию open() внутри блока with

with open("notes.txt", "r", encoding="utf-8") as file:
    text = file.read()

print(text)

Этот код открывает файл notes.txt, читает весь текст и выводит его в консоль. Блок with нужен, чтобы Python сам закрыл файл после чтения

Что нужно подготовить перед запуском

Создайте папку, например file_test

Внутри этой папки создайте два файла

file_test/
  main.py
  notes.txt

В notes.txt напишите любой текст

Привет, Python
Это мой первый файл

В main.py вставьте код

with open("notes.txt", "r", encoding="utf-8") as file:
    text = file.read()

print(text)

Откройте терминал в папке file_test и выполните

python main.py

Если все сделано правильно, в консоли появится содержимое notes.txt

Что значит каждая часть open()

Разберем строку

open("notes.txt", "r", encoding="utf-8")

"notes.txt" — имя файла или путь к файлу

"r" — режим чтения, от английского read

encoding="utf-8" — кодировка текста. Для русских букв лучше явно указывать utf-8, чтобы не ловить странные символы вместо нормального текста

Переменная file — это объект файла. Через него можно читать данные

text = file.read()

read() читает файл целиком одной строкой

Как читать файл построчно

Если файл большой или вам нужно обработать строки по одной, используйте цикл

with open("notes.txt", "r", encoding="utf-8") as file:
    for line in file:
        print(line.strip())

strip() убирает лишний перенос строки в конце каждой строки

Такой вариант часто используют для логов, списков, CSV-подобных файлов и учебных задач

Как открыть файл из другой папки

Если файл лежит рядом с main.py, достаточно имени

open("notes.txt", "r", encoding="utf-8")

Если файл лежит в папке data, путь будет таким

open("data/notes.txt", "r", encoding="utf-8")

Структура проекта

project/
  main.py
  data/
    notes.txt

Код

with open("data/notes.txt", "r", encoding="utf-8") as file:
    print(file.read())

На Windows в Python тоже можно использовать прямой слэш /. Это часто удобнее, чем экранировать обратные слэши

Как проверить, из какой папки запускается программа

Ошибка FileNotFoundError часто появляется не потому, что файл отсутствует, а потому что программа запускается не из той папки

Добавьте проверку

from pathlib import Path

print(Path.cwd())

Path.cwd() покажет текущую рабочую папку. Именно от нее Python ищет относительный путь вроде notes.txt

Если вывод не тот, откройте терминал в нужной папке или используйте путь относительно файла программы

from pathlib import Path

base_dir = Path(__file__).parent
file_path = base_dir / "notes.txt"

with open(file_path, "r", encoding="utf-8") as file:
    print(file.read())

Так файл будет искаться рядом с main.py, даже если программу запустили из другой папки

Как сохранить файл в Python

Для записи используют режим "w"

with open("result.txt", "w", encoding="utf-8") as file:
    file.write("Python сохранил этот текст\n")

Если файла result.txt нет, Python создаст его. Если файл уже есть, режим "w" перезапишет содержимое

Чтобы добавить текст в конец файла, используйте режим "a"

with open("result.txt", "a", encoding="utf-8") as file:
    file.write("Еще одна строка\n")

Частые ошибки

FileNotFoundError

Python не нашел файл по указанному пути

Проверьте три вещи

  • файл действительно существует
  • имя файла написано без ошибки
  • терминал открыт в правильной папке

UnicodeDecodeError

Python открыл файл, но не смог правильно прочитать кодировку

Попробуйте явно указать кодировку

with open("notes.txt", "r", encoding="utf-8") as file:
    print(file.read())

Если файл старый и создан в Windows, иногда помогает cp1251

with open("notes.txt", "r", encoding="cp1251") as file:
    print(file.read())

PermissionError

Python не может открыть файл из-за прав доступа или потому что файл занят другой программой

Закройте файл в Excel, Word или другом редакторе и попробуйте снова

Мини-задача

Создайте файл shopping.txt

хлеб
молоко
сыр

Напишите программу, которая выводит каждую строку с номером

with open("shopping.txt", "r", encoding="utf-8") as file:
    for number, line in enumerate(file, start=1):
        print(f"{number}. {line.strip()}")

Ожидаемый вывод

1. хлеб
2. молоко
3. сыр

Что почитать дальше по Python

Если нужен общий маршрут по теме, откройте рубрику Python. Для соседних задач пригодятся эти разборы:

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x