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

Резултати

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

Пребарај: #frenchcomposers

当前筛选 #frenchcomposers清除筛选
Classical Music

@exploreclassical · Post #239 · 20.03.2021 г., 11:00

今天分享法国作曲家Germaine Tailleferre,出生于1892年,是法国著名作曲家团体Les Six中唯一一位女性。她年少时在Paris Conservatory学习,钢琴弹得非常好,获得了很多奖项。Satie非常喜欢她的作品Jeux de plein air for two pianos, 把她称作"my musical daughter"。在1919-1920年,她加入了Les Six。不过由于种种原因(战争逃难,婚姻等等),她没有Les Six其他成员那么出名,许多作品也是她身后才得以发表。今天分享一首她最活跃的1920年代写的一首竖琴钢琴协奏曲~ #womenComposers#frenchComposers https://www.youtube.com/watch?v=Cv650bvCoYw ref: 1. https://en.wikipedia.org/wiki/Germaine_Tailleferre#Selected_bibliography 2. https://www.wisemusicclassical.com/composer/1557/Germaine-Tailleferre/

Classical Music

@exploreclassical · Post #235 · 16.03.2021 г., 10:48

今天分享法国作曲家Augusta Holmès,生于1847年。虽然从小就展示出了音乐天赋,但是受到当时social norm的影响,她在她妈妈去世之后才终于得以学习音乐。她是César Franck的学生,并和Franz Liszt,Saint-Saëns等都关系密切。她说“‘I must show the males what I’m made of!”,因此和当时女性作曲家大多写的是篇幅较小的歌曲或者salon piece不同,Augusta的作品都比较“大”,被认为比较"masculine"(虽然masculine in music的concept我是不太认的……),比如她在1889年为纪念法国大革命100周年在巴黎世博会上演出的作品Ode Triomphale,需要300人的交响乐团和900人的choir。 今天我们分享一首她的作品Roland Furieux,取材于Ludovico Ariosto的诗。 #womenComposers#frenchComposers https://www.youtube.com/watch?v=KQl01sMe960 ref: 1. https://www.rcm.ac.uk/research/archivedprojects/augustaholmes/ 2. https://www.youtube.com/watch?v=d4eYZP1TztA

Classical Music

@exploreclassical · Post #229 · 11.03.2021 г., 12:00

今天分享法国作曲家,Elisabeth Jacquet de la Guerre,生于1665年。她是一位harpsichord神童(她的父亲和祖父都是harpsichord maker),在五岁的时候就被法国国王路易十四注意到,并从此成为了路易十四的court musician。她的作品融合了法国音乐和意大利音乐的特点,今天分享她的一首Sonata作品~ #womenComposers#frenchComposers https://www.youtube.com/watch?v=WJvFUeyQYZE ref: 1. https://www.youtube.com/watch?v=gxfSbjpwvQE 2. https://en.wikipedia.org/wiki/Élisabeth_Jacquet_de_La_Guerre

Classical Music

@exploreclassical · Post #266 · 28.04.2021 г., 12:38

本魔法师准备在鸟叫声的道路上一路远去🦜lol今天分享“古典音乐界鸟类大师”梅西安的一首作品Oiseaux exotiques(Exotic Birds)~梅西安大约在50岁的时候开始创作很多birdsong,和常见的只是在作品中有对鸟叫的模仿(比如昨天我们听的Lark Ascending)完全不同,梅西安是直接将真实的鸟叫声记谱,再将他们融入在现代作曲中。和很多音乐家会去各处采集folk song一样,梅西安到各地采集鸟类的叫声。 这首Oiseaux exotiques中记录了18种来自印度,中国,马来西亚和美洲的鸟类,是无法在大自然中听到的鸟类组合~不过梅西安并没有去过这些地方,这首作品鸟叫声是从录音中transcribe出来的~ https://www.youtube.com/watch?v=YYb_CCTYlMw #springClassical#frenchComposers ref: 1. https://en.wikipedia.org/wiki/Oiseaux_exotiques 2. http://www.aspenmusicfestival.com/program_notes/view/messiaen-oiseaux-exotiques-exotic-birds 3. https://www.laphil.com/musicdb/pieces/533/oiseaux-exotiques 4. 视频 - Messiaen's use of birdsong:https://www.youtube.com/watch?v=0MgLXeaf3zc

Classical Music

@exploreclassical · Post #278 · 17.05.2021 г., 12:13

分享Debussy的Sonata for Flute, Viola and Harp~ #Debussy#chamberMusic#frenchComposers https://www.youtube.com/watch?v=rLvShcrp1c4 ref: 1. https://thelistenersclub.com/2019/08/21/debussys-sonata-for-flute-viola-and-harp-the-land-of-laughter-and-tears/ 2. https://www.laphil.com/musicdb/pieces/3401/sonata-for-flute-viola-and-harp

Classical Music

@exploreclassical · Post #450 · 13.12.2022 г., 22:04

今天本人收到一条不是很开心的消息,我们一起来听一首抚慰人心的合唱吧~这首 Cantique de Jean Racine 是 Faure 19岁时参加比赛的作品~歌词是 Jean Racine 对拉丁原文的法语翻译~看不懂法语的我就分享一下英文翻译吧~ Word of the Highest, our only hope, Eternal day of earth and the heavens, We break the silence of the peaceful night; Saviour Divine, cast your eyes upon us! Pour on us the fire of your powerful grace, That all hell may flee at the sound of your voice; Banish the slumber of a weary soul, That brings forgetfulness of your laws! O Christ, look with favour upon your faithful people Now gathered here to praise you; Receive their hymns offered to your immortal glory; May they go forth filled with your gifts. https://www.youtube.com/watch?v=iJfKLviVCEI #adventCalendar#choral#frenchComposers