Как получить алфавит текущей локали в Python 3? - PullRequest
0 голосов
/ 27 августа 2018

В Python 2 вы можете сделать следующее, чтобы получить набор символов текущей локали:

import string
print string.letters

Однако в Python 3 локально-зависимые константы строкового модуля (например, string.letters, string.lowercase, string.uppercase и т. Д.) Были удалены.


Как я могу получить набор символов текущей локали, используя Python 3?

1 Ответ

0 голосов
/ 28 августа 2018

Вы можете получить образец символов для каждой локали, используя модуль pyicu :

import locale
from icu import LocaleData

default, encoding = locale.getdefaultlocale()
languages = [default] + ['en_US', 'fr_FR', 'es_ES']

for language in languages:
    data = LocaleData(language)
    alphabet = data.getExemplarSet()
    print(language, alphabet)

выход

pt_BR [a-zà-ãçéêíò-õú]
en_US [a-z]
fr_FR [a-zàâæ-ëîïôùûüÿœ]
es_ES [a-záéíñóúü]

Для получения текущей локали достаточно сделать:

default, _ = locale.getdefaultlocale()
data = LocaleData(default)
alphabet = data.getExemplarSet()
print(default, alphabet)
...