Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Текстовый файл
Текстовый файл — это файл, содержащий данные в виде обычного текста (символы, слова, предложения), сохранённые в читаемом для человека формате. Текстовые файлы состоят из последовательности символов, кодируемых определённой кодировкой (обычно UTF-8).
Характеристики текстовых файлов
- Расширения: .txt, .py, .java, .json, .csv, .md, .html, .xml, .log
- Кодировка: UTF-8, ASCII, ANSI, UTF-16 и др.
- Переносы строк: LF (Unix), CRLF (Windows), CR (старые Mac)
- Размер: обычно меньше, чем бинарные файлы
- Редактируемость: можно открыть и отредактировать любым текстовым редактором
Чтение текстовых файлов
# Способ 1: с контекстным менеджером (рекомендуется)
with open("file.txt", "r", encoding="utf-8") as f:
content = f.read() # Весь файл
print(content)
# Способ 2: построчное чтение
with open("file.txt", "r", encoding="utf-8") as f:
for line in f:
print(line.strip())
# Способ 3: чтение списком строк
with open("file.txt", "r", encoding="utf-8") as f:
lines = f.readlines()
for line in lines:
print(line)
Запись в текстовый файл
# Перезапись (стирает старое содержимое)
with open("file.txt", "w", encoding="utf-8") as f:
f.write("Новый текст\n")
f.write("Вторая строка\n")
# Добавление (append)
with open("file.txt", "a", encoding="utf-8") as f:
f.write("Добавленная строка\n")
# Множество строк
lines = ["Строка 1\n", "Строка 2\n", "Строка 3\n"]
with open("file.txt", "w", encoding="utf-8") as f:
f.writelines(lines)
Режимы открытия файлов
# Режимы
# "r" - чтение (по умолчанию)
# "w" - запись (перезапись)
# "a" - добавление
# "x" - создание (ошибка если существует)
# "b" - бинарный режим (rb, wb, ab)
# "+" - чтение + запись (r+, w+, a+)
with open("file.txt", "r") as f: # Чтение
data = f.read()
with open("file.txt", "w") as f: # Запись
f.write(data)
with open("file.txt", "a") as f: # Добавление
f.write("новые данные")
Работа с путями файлов
from pathlib import Path
# Создание пути
path = Path("folder/file.txt")
# Проверка существования
if path.exists():
print("Файл существует")
# Получение информации
print(path.name) # file.txt
print(path.suffix) # .txt
print(path.stem) # file
print(path.parent) # folder
print(path.absolute()) # абсолютный путь
# Чтение с Path
with open(path, "r", encoding="utf-8") as f:
content = f.read()
Обработка текстовых данных
# CSV файл
import csv
with open("data.csv", "r", encoding="utf-8") as f:
reader = csv.DictReader(f)
for row in reader:
print(row["name"], row["age"])
# JSON файл
import json
with open("data.json", "r", encoding="utf-8") as f:
data = json.load(f)
with open("data.json", "w", encoding="utf-8") as f:
json.dump(data, f, indent=2)
# Логирование
import logging
logging.basicConfig(
filename="app.log",
level=logging.INFO,
format="%(asctime)s - %(message)s"
)
logging.info("Application started")
Текстовый файл vs Бинарный файл
| Текстовый | Бинарный |
|---|---|
| Содержит символы | Содержит байты |
| Читаемый для человека | Не читаемый напрямую |
| .txt, .json, .csv | .jpg, .exe, .pdf |
| "r" режим | "rb" режим |
| Можно редактировать | Требует специального ПО |
Работа с кодировками
# Явная кодировка
with open("file.txt", "r", encoding="utf-8") as f:
content = f.read()
# Разные кодировки
with open("file.txt", "r", encoding="cp1251") as f: # Windows Cyrillic
content = f.read()
# Обработка ошибок кодировки
with open("file.txt", "r", encoding="utf-8", errors="ignore") as f:
content = f.read()
Практические примеры
# Подсчет строк в файле
with open("file.txt", "r") as f:
line_count = sum(1 for _ in f)
print(f"Строк в файле: {line_count}")
# Поиск текста в файле
with open("file.txt", "r") as f:
for line in f:
if "keyword" in line:
print(line)
# Замена текста
with open("file.txt", "r") as f:
content = f.read()
content = content.replace("old", "new")
with open("file.txt", "w") as f:
f.write(content)
# Создание резервной копии
import shutil
shutil.copy("file.txt", "file.txt.bak")
Вывод: Текстовые файлы — это основной способ хранения текстовой информации. Python предоставляет удобные инструменты для работы с ними через встроенную функцию open() и модули вроде pathlib, csv, json.