TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #121 · 20 јул.

Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для URL, имени файла, имени объекта в каком-то софте и тд. Требования совместимости простые: в тексте должны быть только допустимые символы. Обычно это a-z, 0-9 и "_" или "-". То есть, только прописные буквы латинского алфавита и цифры (как пример). Допустим, нам нужно название статьи в блоге преобразовать в slug для добавления его в URL этой статьи. Как это лучше всего сделать? В Django по умолчанию есть готовая функция slugify для таких случаев. Но я её никогда не использую. Почему? Потому что её недостаточно! Приведём пример >>> from django.utils.text import slugify >>> slugify('This is a Title') 'this-is-a-title' Пока всё отлично >>> slugify('This is a "Title!"') 'this-is-a-title' Спец символы удалились, всё хорошо. >>> slugify('Это заголовок статьи') '' Вот и приехали 😢. Если текст не английский то буквы просто игнорируются. Можно это поправить >>> slugify('Это заголовок статьи', allow_unicode=True) 'это-заголовок-статьи' Но тогда мы не вписываемся в условие. У нас появилась кириллица в тексте. Так как я часто пишу сайты для русскоязычных пользователей эта проблема весьма актуальна. Я не использую стандартную функцию и всегда пишу свою. Оригинал я не беру в расчёт и пишу полностью свою функцию. И так, по порядку: 🔸1. Исходный текст: >>> text = 'Мой заголовок №10 😁!' Взял специально посложней со специальными символами. 🔸2. Транслит Необходимо сделать транслит всех символов в латиницу. Здесь очень выручает библиотека unidecode. Помимо простого транслита кириллицы в латиницу она умеет преобразовывать спец символы и иероглифы в текстовые аналоги. from unidecode import unidecode >>> unidecode("Ñ Σ ® µ ¶ ¼ 月 山") 'N S (r) u P 1/4 Yue Shan' Очень крутая библиотека, советую👍 В нашем случае получаем такое преобразование: >>> text = unidecode(text) >>> print(text) 'Moi zagolovok No. 10 !' Отличный транслит. Смайл просто удалился, хотя я ждал что-то вроде :). Ну и ладно, всë равно невалидные символы. А еще наш код уже поддерживает любой язык, будь то хинди или корейский. 🔸4. Фильтр символов Unidecode не занимается фильтрацией по недопустимым символам. Это мы делаем в следующем шаге через regex. Просто заменим все символы на "_" если они вне указанного диапазона. >>> text = re.sub(r'[^a-zA-Z0-9]+', '_', text) >>> print(text) 'Moi_zagolovok_No_10_' Символ "+" в паттерне выручает когда несколько недопустимых символов идут рядом. Все они заменяются на один символ "_". 🔸5. Slugify Осталось удалить лишние символы по краям и сделать нижний регистр >>> text = text.strip('_').lower() >>> print(text) 'moi_zagolovok_no_10' Получаем отличный slug! 😎 🌎 Полный код в виде функции. ______________ PS. Проверку что в строке остался хоть один допустимый символ я бы вынес в отдельную функцию. #libs#tricks#django

Резултати

Пронајдени 8 слични објави

Пребарај: #convert

当前筛选 #convert清除筛选
Sliverkissの废弃文化研究所

@sliverkiss_blog · Post #213 · 23.11.2023 г., 10:57

▎Curlconverter Convert cURL commands into code Transpile curl commands into C#, ColdFusion, Clojure, Dart, Elixir, Go, HTTPie, Java, JavaScript, Kotlin, MATLAB, Objective-C, OCaml, PHP, PowerShell, Python, R, Ruby, Rust, Swift, Wget, Ansible, HAR, HTTP or JSON. 在线转换: 点击链接 项目地址: 点击链接 #convert#curl

BotsGram®

@botsgram_cu · Post #3552 · 26.02.2021 г., 16:56

@JPG2PDFBot Qué puede hacer este bot? Envíame fotos JPG o BMP como medios de Telegram. Cuando hayas terminado, use /done e intentaré generar un archivo PDF usando las imágenes enviadas en ese orden. Idioma: Inglés (visto en @BotsGram_cu) #pdf, #convert, #photo

BotsGram®

@botsgram_cu · Post #3434 · 26.01.2021 г., 01:10

@textUtilsBot Qué puede hacer este bot? Bot en línea para transformaciones de texto. Puede ayudarlo a traducir texto del lenguaje humano a código binario o hexadecimal, cadena base64 y viceversa. Idioma: Inglés (visto en @BotsGram_cu) #inline, #utility, #base64, #binary, #hexadecimal, #convert

BotsGram®

@botsgram_cu · Post #3269 · 09.12.2020 г., 13:12

@NewStickerOptimizerBot Qué puede hacer este bot? Simplemente envíeme una imagen o pegatina, y la convertiré en un archivo png y la optimizaré para que su tamaño sea más pequeño o igual a 350Kb, para que pueda agregarlo a un paquete de pegatinas usando el bot @stickers. Idioma: Inglés (visto en @BotsGram_cu) #sticker, #png, #image, #picture, #optimize, #pack, #create, #tool, #convert

GitHub Trends

@githubtrending · Post #14981 · 21.07.2025 г., 11:30

#typescript#bun#conversion#convert#converter#document_conversion#elysia#file_conversion#file_converter#hacktoberfest#pdf_converter#self_hosted#tailwindcss#typescript ConvertX is a self-hosted online file converter that supports over a thousand file formats, including images, videos, documents, e-books, and 3D assets. It lets you convert multiple files at once, offers password protection, and supports multiple user accounts for privacy. You can run it easily using Docker, making it simple to set up on your own server. This means your files stay private since conversions happen locally without sending data to external servers. It uses powerful open-source tools like FFmpeg and ImageMagick, giving you a versatile and secure way to handle all your file conversion needs in one place[1][2]. https://github.com/C4illin/ConvertX

BotsGram®

@botsgram_cu · Post #3161 · 25.11.2020 г., 07:33

@TelescopyBot Qué puede hacer este bot? Con este bot puedes convertir videos cuadrados a videos redondos Idioma: Inglés, Ruso (visto en @BotsGram.cu) #telescope, #video_\message, #convert, #mp4, #gif, #media, #questions, #command, #round, #message, #video