Існує пакет із іменем python python-slugify
, який робить досить непогану роботу зі знешкодження:
pip install python-slugify
Працює так:
from slugify import slugify
txt = "This is a test ---"
r = slugify(txt)
self.assertEquals(r, "this-is-a-test")
txt = "This -- is a ## test ---"
r = slugify(txt)
self.assertEquals(r, "this-is-a-test")
txt = 'C\'est déjà l\'été.'
r = slugify(txt)
self.assertEquals(r, "cest-deja-lete")
txt = 'Nín hǎo. Wǒ shì zhōng guó rén'
r = slugify(txt)
self.assertEquals(r, "nin-hao-wo-shi-zhong-guo-ren")
txt = 'Компьютер'
r = slugify(txt)
self.assertEquals(r, "kompiuter")
txt = 'jaja---lol-méméméoo--a'
r = slugify(txt)
self.assertEquals(r, "jaja-lol-mememeoo-a")
Див. Більше прикладів
Цей пакет робить трохи більше, ніж те, що ви опублікували (подивіться на джерело, це лише один файл). Проект все ще активний (оновлений за 2 дні до того, як я спочатку відповів, через сім років (востаннє перевірено 2020-06-30), він все ще оновлюється).
обережно : навколо є другий пакет, названий slugify
. Якщо у вас обоє, ви можете отримати проблему, оскільки вони мають однакову назву для імпорту. Щойно названий slugify
не зробив всього, що я швидко перевірив: "Ich heiße"
став "ich-heie"
(повинен бути "ich-heisse"
), тому обов’язково виберіть правильний при використанні pip
або easy_install
.