Toutes les lettres UTF8


Pour l’ascii, on a string.ascii_letters, mais rien de tel pour un autre charset.

Voici comment obtenir une string qui contient toutes les lettres en UTF8 :

from unicodedata import category
 
def get_all_unicode_letters(categs=('Lu', 'Ll', 'Lt', 'Lm')):
    # Categores unicode dans lesquelles récupérer les lettres
    # On peut virer 'Lt', 'Lm' si on veut garder des lettres plus
    # proches de notre alphabet
    categs = set(categs) 
    # on prend tous les symboles utf8
    all_unicode = (chr(i) for i in range(65536))
    # on garde ceux qui sont dans une categorie 'lettre'
    return ''.join(c for c in all_unicode if category(c) in categs)
 
letters = get_all_unicode_letters()

C’est quand même bien foutu pour ça unicode : tout est catégorisé avec les trucs en majuscule, les modifieurs, les nombres, les espaces et tout le bordel.

Par exemple vous voulez voir tous les symboles monétaires :

def pognon():
    all_unicode =  (chr(i) for i in range(65536))
    return ''.join(c for c in all_unicode if category(c) == 'Sc')
 
print(pognon())
$¢£¤¥֏؋৲৳৻૱௹฿៛₠₡₢₣₤₥₦₧₨₩₪₫€₭₮₯₰₱₲₳₴₵₶₷₸₹₺꠸﷼﹩$¢£¥₩

4 thoughts on “Toutes les lettres UTF8

Comments are closed.

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.