如何在Python 3中获取当前语言环境的字母?

时间:2018-08-27 19:12:57

标签: python python-3.x locale

在Python 2中,您可以执行以下操作来获取当前语言环境的字符集:

import string
print string.letters

但是,在Python 3中,字符串模块的语言环境相关常量(例如string.lettersstring.lowercasestring.uppercase等)已被删除。


如何使用Python 3获取当前语言环境的字符集?

1 个答案:

答案 0 :(得分:4)

您可以使用exemplar characters模块为每个语言环境获取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)