У меня есть текстовый файл с числами и я пытаюсь их преобразовать. Числа имеют фиксированную ширину и отформатированы в немецком стиле, но между знаком минус и цифрами есть пробелы, например '- 15,13'
.
Я мог бы легко удалить пробелы. Но я новичок в locale
, и мне интересно, можно ли его использовать исключительно для преобразования таких чисел? В таком случае, как мне изменить конфигурацию?
import locale
locale.setlocale(locale.LC_ALL, 'de_DE')
s = '- 15,13'
f = locale.atof(s)
Я получаю ValueError: не удалось преобразовать строку в float: '- 15.13'
locale.localeconv()
показывает:
{'int_curr_symbol': 'EUR', 'currency_symbol': '€', 'mon_decimal_point': ',', 'mon_thousands_sep': '.', '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': '.', 'grouping': [3, 0]}
Эквивалент для США:
import locale
locale.setlocale(locale.LC_ALL, 'en_US')
s = '- 234,567.89'
locale.atof(s)