Python
Как открыть файл с помощью Python: open, pathlib и чтение текста
Открытие файла — одна из первых практических задач в Python. Она нужна, когда вы хотите прочитать текст, обработать список строк, загрузить настройки, разобрать CSV или сохранить результат работы программы
Самый простой способ открыть текстовый файл — использовать встроенную функцию open()
Короткий ответ
Создайте рядом со скриптом файл notes.txt с таким текстом
Python работает с файлами
Это вторая строка
Создайте файл read_file.py
with open("notes.txt", "r", encoding="utf-8") as file:
text = file.read()
print(text)
Запустите скрипт
python read_file.py
Если файл лежит рядом со скриптом, Python откроет его и выведет содержимое в консоль
Что означает with open
Конструкция with open(...) as file открывает файл и автоматически закрывает его после чтения. Это хороший стандартный вариант для начинающих и для рабочих скриптов
with open("notes.txt", "r", encoding="utf-8") as file:
text = file.read()
Разберем параметры:
"notes.txt"— путь к файлу"r"— режим чтенияencoding="utf-8"— кодировка текстаfile.read()— чтение всего файла одной строкой
Кодировка важна для русских текстов. Если ее не указать, на разных системах результат может отличаться
Как прочитать файл построчно
Если файл большой или нужно обработать каждую строку отдельно, удобнее читать его циклом
with open("notes.txt", "r", encoding="utf-8") as file:
for line in file:
print(line.strip())
Метод strip() убирает перенос строки в конце каждой строки. Без него вывод может выглядеть слишком разреженным
Как открыть файл через pathlib
pathlib часто удобнее, когда нужно работать с путями: собирать путь из папки и имени файла, проверять существование, читать и записывать текст
from pathlib import Path
path = Path("notes.txt")
text = path.read_text(encoding="utf-8")
print(text)
Для коротких скриптов это очень читаемый вариант: путь отдельно, чтение отдельно
Как понять, где Python ищет файл
Самая частая ошибка — файл есть, но Python пишет FileNotFoundError. Обычно это значит, что скрипт запущен не из той папки, где лежит файл
Проверьте текущую рабочую папку
from pathlib import Path
print(Path.cwd())
Python ищет относительный путь от текущей рабочей папки, а не обязательно от места, где визуально лежит файл в редакторе
Если хотите открыть файл рядом со скриптом, можно построить путь от файла программы
from pathlib import Path
script_dir = Path(__file__).parent
path = script_dir / "notes.txt"
text = path.read_text(encoding="utf-8")
print(text)
Так код становится устойчивее: его можно запускать из другой папки, а файл notes.txt будет искаться рядом со скриптом
Как проверить, существует ли файл
Перед открытием можно проверить файл через exists()
from pathlib import Path
path = Path("notes.txt")
if path.exists():
print(path.read_text(encoding="utf-8"))
else:
print("Файл не найден")
Это полезно для учебных программ и пользовательских скриптов, где лучше показать понятное сообщение вместо длинной ошибки
Как открыть файл на запись
Если нужно не прочитать, а создать или перезаписать файл, используется режим "w"
with open("result.txt", "w", encoding="utf-8") as file:
file.write("Результат работы программы")
Будьте внимательны: режим "w" перезаписывает файл. Если файл уже был, старое содержимое исчезнет
Чтобы добавить текст в конец файла, используйте режим "a"
with open("result.txt", "a", encoding="utf-8") as file:
file.write("\nНовая строка")
Мини-практика
Создайте файл tasks.txt и запишите туда три дела, каждое с новой строки. Затем напишите Python-скрипт, который открывает файл и выводит строки с номерами
Пример ожидаемого вывода
1. Купить кофе
2. Написать урок
3. Проверить код
Подсказка: используйте enumerate(file, start=1), чтобы получать номер строки и сам текст
Частые ошибки
Ошибка первая: файл лежит не в той папке. Проверьте Path.cwd() и путь к файлу
Ошибка вторая: забыть кодировку. Для русских текстов указывайте encoding="utf-8"
Ошибка третья: использовать режим "w" вместо "r" и случайно перезаписать файл
Ошибка четвертая: читать огромный файл через read(). Для больших файлов лучше читать построчно
Ошибка пятая: писать путь с обратными слешами без аккуратности. В Windows можно использовать сырые строки r"C:\folder\file.txt" или pathlib
Что почитать дальше по Python
Если нужен общий маршрут по теме, откройте рубрику Python. Для соседних задач пригодятся эти разборы:
- Как открыть файл в Python: open(), with, чтение текста и частые ошибки
- Как создать файл в Python: open, pathlib и запись текста
- Python открыть ссылку в новой вкладке: webbrowser и Selenium
- Как запустить программу на Python: файл .py, терминал, CMD и VS Code