На этом шаге мы рассмотрим понятие локали и функции настройки локали.
Для установки локали (совокупности локальных настроек системы) служит функция setlocale() из модуля locale. Прежде чем использовать функцию, необходимо подключить модуль с помощью выражения:
import locale
Функция setlocale() имеет следующий формат:
setlocale(<Категория>[, <Локаль>]);
Параметр <Категория> может принимать следующие значения:
Получить текущее значение локали позволяет функция getlocale([<Категория>]). В качестве примера настроим локаль под Windows вначале на кодировку Windows-1251, потом на кодировку UTF-8, а затем на кодировку по умолчанию. Далее выведем текущее значение локали для всех категорий и только для locale.LC_COLLATE:
>>> import locale >>> # Для кодировки windows-1251 >>> locale.setlocale(locale.LC_ALL, "Russian_Russia.1251") 'Russian_Russia.1251' >>> # Устанавливаем локаль по умолчанию >>> locale.setlocale(locale.LC_ALL, "") 'Russian_Russia.1251' >>> # Получаем текущее значение локали для всех категорий >>> locale.getlocale() ('Russian_Russia', '1251') >>> # Получаем текущее значение категории >>> locale.getlocale(locale.LC_COLLATE) ('Russian_Russia', '1251')
Получить настройки локали позволяет функция localeconv(). Функция возвращает словарь с настройками. Результат выполнения функции для локали Russian_Russia.1251 выглядит следующим образом:
>>> locale.localeconv()
{'int_curr_symbol': 'RUB', 'currency_symbol': '?',
'mon_decimal_point': ',', 'mon_thousands_sep': '\xa0', 'mon_grouping': [3, 0],
'positive_sign': '', 'negative_sign': '-', 'int_frac_digits': 2,
'frac_digits': 2, 'p_cs_precedes': 0, 'p_sep_by_space': 1,
'n_cs_precedes': 0, 'n_sep_by_space': 1, 'p_sign_posn': 1, 'n_sign_posn': 1,
'decimal_point': ',', 'thousands_sep': '\xa0', 'grouping': [3, 0]}
На следующем шаге мы рассмотрим методы изменения регистра символов.