Убирает пробелы/указанные символы слева/справа/с обеих сторон
" hello ".strip() → "hello"
title()
Каждое слово с заглавной буквы
"hello world".title() → "Hello World"
translate(table)
Преобразует символы по таблице
см. ниже
3.2 Методы, связанные с Unicode
Метод
Описание
encode(encoding='utf-8', errors='strict')
Возвращает bytes.
decode(encoding='utf-8', errors='strict')
Для bytes.
casefold()
Наиболее «полное» приведение к нижнему регистру (для сравнения).
isascii()
True, если строка содержит только ASCII‑символы.
str.upper()/lower()/title()
Работают с Unicode‑переносами и кейсами.
3.3 Методы, полезные в NLP и обработке текста
Метод
Применение
Пример
strip()
Удаление пробелов из начала/конца (часто встречается в корпусах).
split() / rsplit()
Разбивка предложений, слов, токенов.
replace()
Упрощённые подстановки (например, удалить HTML‑теги).
translate()
Создание словаря для транслитерации (пример ниже).
join()
Конкатенация токенов в список.
format() / f‑строки
Удобный шаблон для построения больших текстов (логов, JSON).
4️⃣ Функции из сторонних модулей
Методы – это «встроенные» в тип str. Функции – импортируются из модулей и часто позволяют дополнительно обрабатывать строки (регулярки, утилиты, кодировки и т.д.).
4.1 str (модуль) – функции‑утилиты
Функция
Что делает
Пример
ascii(object)
Возвращает строку с ASCII‑эквивалентами (escape‑символы для не‑ASCII).
ascii("ü") → "'\\u00fc'"
format(format_spec, **kwargs)
Тоже самое, что метод format, но принимает любой объект.
format("{:.2f}", 3.1415) → "3.14"
format_map(mapping)
Применяет форматирование через словарь.
"{name}".format_map({"name":"Bob"}) → "Bob"
len(object)
Длина строки/байт.
len("abc") → 3
str.__new__(cls, *args, **kwargs)
Технически «для создания» – обычно не используем.
4.2 Модуль re – регулярные выражения
Функция
Применение
Пример
re.match(pattern, string)
Проверка совпадения в начале строки.
re.match(r"^\d+", "123abc") → объект
re.search(pattern, string)
Поиск первого совпадения в любой позиции.
re.search(r"\d+", "abc123def") → объект
re.findall(pattern, string)
Все неперекрывающиеся совпадения.
re.findall(r"\w+", "a b-c") → ['a','b','c']
re.sub(pattern, repl, string, count=0)
Замена.
re.sub(r"\d", "#", "123abc") → "###abc"
re.split(pattern, string, maxsplit=0)
Разбивка по паттерну.
re.split(r"[,.]", "a,b.c") → ['a','b','c']
re.compile(pattern)
Позволяет компилировать паттерн один раз и использовать многократно (экономит время).
p = re.compile(r"\d{4}"); p.findall("1999-2020")
NLP‑пример: re часто используется для токенизации (удаление пунктуации, выделение чисел).
4.3 Модуль string – константы и полезные таблицы
Функция/константа
Описание
string.ascii_letters
Все буквы латиницы (abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ).
string.ascii_lowercase
Маленькие буквы.
string.ascii_uppercase
Большие буквы.
string.digits
0‑9.
string.punctuation
Пунктуационные символы.
string.whitespace
Пробелы, табуляции, переводы строк.
Пример: генерация случайной строки:
import string, random
''.join(random.choice(string.ascii_letters + string.digits) for _ in range(8))
# → 'aB3k9Lm2'
4.4 Модуль textwrap – форматирование текста (печать, вывод)
Функция
Что делает
Пример
wrap(text, width=70, **kwargs)
Разбивает строку на строки указанной ширины.
textwrap.wrap("A very long sentence.", width=10) → ['A very', 'long sen', 'tence.']
fill(text, width=70)
Возвращает '\n'‑разбитый текст (упрощённый).
indent(text, prefix=' ', predicate=None)
Добавляет отступ к каждой строке.
dedent(text)
Убирает общие отступы (полезно для вывода кода).
4.5 Модуль unicodedata – работа с Unicode‑свойствами
Функция
Применение
unicodedata.normalize(form, unistr)
Приведение строки к NFC/NFD/NFKC/NFKD.
unicodedata.category(ch)
Возвращает категорию (например, "Lu" – буква, "Nd" – цифра).
unicodedata.name(ch)
Получить официальное название символа.
unicodedata.lookup(name)
Получить символ по имени ( "LATIN SMALL LETTER A" → "a" ).
Типичный сценарий: нормализация входных данных перед сравнением (unicodedata.normalize('NFKC', s)).
4.6 pathlib – объектно‑ориентированный путь к файлам (модуль os.path тоже подходит)
Функция
Что делает
Пример
Path(str).suffix
Расширение файла.
Path(str).stem
Имя файла без расширения.
Path(str).parent
Директорию.
Path(str).name
Имя + расширение.
Path(str).read_text(encoding='utf-8')
Читает файл в строку.
Path(str).write_text(text, encoding='utf-8')
Записывает строку в файл.
4.7 Модуль codecs – специфические кодировки (base64, rot13 и др.)
Функция
Пример
codecs.encode(string, encoding='rot13')
"Hello".encode('rot13') → 'Uryyb'
codecs.decode(bytes_obj, encoding='utf-8')
Преобразует байты обратно в str.
4.8 Модуль csv – чтение/запись CSV‑строк
Функция
Описание
csv.reader(file_obj)
Итератор строк CSV (словари/списки).
csv.DictReader(file_obj)
Итерирует словари.
csv.writer(file_obj)
Записывает строки в CSV.
Пример: csv.DictReader(open("users.csv")) → генерация списка строк без лишних пробелов.
import re
def tokenize(text):
# Убираем всё кроме букв и цифр
tokens = re.findall(r"[A-Za-z0-9]+", text)
# Приводим к нижнему регистру
return [t.lower() for t in tokens]
txt = "Hello, world! 123 – это тест."
print(tokenize(txt))
# ['Hello', 'world', '123', 'это', 'тест']
Задача 3️⃣ – Формирование «красивого» вывода текста
import textwrap
def pretty_print(very_long):
wrapped = textwrap.fill(very_long, width=30, replace_whitespace=False)
print(wrapped)
pretty_print("A very long sentence that should be broken into lines for readability.")
Методы – быстрый, «внутри» объекта. Чаще всего используются для простых манипуляций (изменение регистра, поиск, замена).
Функции из модулей – позволяют «выходить» за рамки простых операций: работать с регулярками, форматировать текст, нормализовать Unicode, парсить CSV/email‑строки, использовать наборы символов и т.д.
Сочетание обеих подходов – эффективный «питонский» способ обработки любого текстового данных: от чистого кода до анализа больших корпусов (NLP).
Напоминание: для серьёзных задач (например, предобработка корпусов, веб‑парсинг) рекомендуется комбинировать str‑методы + re + unicodedata. Это даёт гибкость и одновременно минимизирует «грязные» преобразования.