← Назад к вопросам

Что такое текстовый файл?

1.0 Junior🔥 61 комментариев
#REST API и HTTP#Безопасность

Комментарии (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.