Python 3.5+pathlibфункция
.read_text()
чтение/запись
Читает файл целиком в строку и сам закрывает его — open() не нужен. Кодировку стоит задавать явно: `encoding='utf-8'`.
Синтаксис
p.read_text(encoding='utf-8')
До Python 3.15 без явного encoding кодировка берётся из локали ОС (с 3.15 — UTF-8, PEP 686) — на Windows это обычно cp1251, и UTF-8 файл прочитается кракозябрами или упадёт с UnicodeDecodeError. Файл читается целиком в память: для многогигабайтного лога это не подходит, там открывают файл и идут по строкам в цикле.
Примеры
from pathlib import Path
p = Path('test_pathlib.txt')
p.write_text('hello world', encoding='utf-8')
p.read_text() # → 'hello world'
len(p.read_text().splitlines()) # → 1
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности