Код IT
← Каталог

Работа с файлами, сетью и внешними API — Проверка подстроки, замена и фиксированные переносы строк

Фрагмент из «Работа с файлами, сетью и внешними API»: Проверка подстроки, замена и фиксированные переносы строк.

Python main.py
from pathlib import Path

def patch_file(path: Path, needle: str, replacement: str) -> None:
    raw = path.read_bytes()
    try:
        text = raw.decode("utf-8")
    except UnicodeDecodeError:
        text = raw.decode("utf-8-sig")

    if needle not in text:
        raise ValueError(f"Подстрока не найдена: {needle!r}")

    updated = text.replace(needle, replacement)
    normalized = updated.replace("\r\n", "\n").replace("\r", "\n")
    path.write_bytes(normalized.encode("utf-8"))
from pathlib import Path

def patch_file(path: Path, needle: str, replacement: str) -> None:
    raw = path.read_bytes()
    try:
        text = raw.decode("utf-8")
    except UnicodeDecodeError:
        text = raw.decode("utf-8-sig")

    if needle not in text:
        raise ValueError(f"Подстрока не найдена: {needle!r}")

    updated = text.replace(needle, replacement)
    normalized = updated.replace("\r\n", "\n").replace("\r", "\n")
    path.write_bytes(normalized.encode("utf-8"))