Перейти к содержанию

Рецепты#

В этом разделе приведены практические примеры использования этой библиотеки и фрагменты кода.

Анализ данных#

В рабочих процессах анализа данных преобразование имён столбцов в единый формат, например snake, может значительно упростить доступ к данным и упростить манипулирование ими:

import csv

from textcase import ACRONYM, Boundary, snake

SCOPE = Boundary.from_delimiter("::")

with open("input.csv") as file:
    reader = csv.DictReader(file)
    reader.fieldnames = tuple(snake(column, boundaries=(ACRONYM, SCOPE)) for column in reader.fieldnames or ())

    print(*reader.fieldnames, sep=",")

    for row in reader:
        print(*map(row.get, reader.fieldnames), sep=",")
1
2
3
4
5
User::Id,User::Name,User::HTTPEndpoint
1,John Doe,/api/users/1
2,Jane Smith,/api/users/2
3,Alice Johnson,/api/users/3
4,Bob Brown,/api/users/4
1
2
3
4
5
user_id,user_name,user_http_endpoint
1,John Doe,/api/users/1
2,Jane Smith,/api/users/2
3,Alice Johnson,/api/users/3
4,Bob Brown,/api/users/4

Преобразовав имена столбцов в более доступный формат, вы сможете позже получить доступ к данным, используя row["user_id"] вместо row["User::Id"]. Этот подход упрощает синтаксис и улучшает читаемость кода, облегчая работу с данными.

Преобразование имён файлов#

Различные операционные системы, такие как Windows, macOS и Linux, имеют различные правила, регулирующие имена файлов. Проблемы могут возникать из-за пробелов, специальных символов и чувствительности к регистру при использовании на разных платформах. Преобразование имён файлов в стандартизированный формат, например kebab, повышает совместимость и минимизирует риск ошибок при доступе к файлам в различных средах.

Рассмотрите следующие примеры имён файлов, которые пользователи могут загружать в веб-приложение для преобразования в различные форматы файлов (например, Markdown в PDF, CSV в Excel):

  • "TODO #3 (Draft).md"
  • "BigQuery.csv"
  • "Résumé2025.docx"
  • "LLMCache: Кеширование LLM запросов.pptx"
  • "The Python 3 Standard Library by Example.pdf"

Например, имя файла "TODO #3 (Draft).md" содержит пробелы и специальные символы, включая "#", который интерпретируется как якорь (anchor) в URL-адресах. Это может привести к неработоспособности ссылок при создании URL-адресов для загрузки файла. Например, URL "https://example.com/download/TODO%20#3%20(Draft).md" может привести к тому, что браузер неправильно интерпретирует ссылку, не давая пользователям получить доступ к файлу.

Чтобы решить эту проблему, вы можете использовать эту библиотеку для преобразования имён файлов в более совместимый формат:

from pathlib import Path

import textcase

filenames = (
    "TODO #3 (Draft).md",
    "BigQuery.csv",
    "Résumé2025.DOCX",
    "LLMCache: Кеширование LLM запросов.pptx",
    "The Python 3 Standard Library by Example.pdf",
)

new_filenames = (textcase.kebab(path.stem) + path.suffix.lower() for filename in filenames if (path := Path(filename)))

for filename, new_filename in zip(filenames, new_filenames):
    print(filename, new_filename, sep=",")
Original Filename New Filename
TODO #3 (Draft).md todo-3-draft.md
BigQuery.csv big-query.csv
Résumé2025.DOCX résumé-2025.docx
LLMCache: Кеширование LLM запросов.pptx llm-cache-кеширование-llm-запросов.pptx
The Python 3 Standard Library by Example.pdf the-python-3-standard-library-by-example.pdf

Этот процесс преобразования гарантирует, что имена файлов безопасны для использования на разных платформах.