Существует несколько способов разбора чисел с разделителями тысяч. И я сомневаюсь, что способ, описанный @unutbu, является лучшим во всех случаях. Вот почему я перечисляю и другие способы.
Правильное место для вызова setlocale() находится в __main__ модуле. Это глобальная настройка, которая повлияет на всю программу и даже на расширения C (хотя обратите внимание, что параметр LC_NUMERIC устанавливается не на системном уровне, а эмулируется Python). Прочитайте предостережения в документации и дважды подумайте, прежде чем идти этим путем. Вероятно, это нормально в одном приложении, но никогда не используйте это в библиотеках для широкой аудитории. Вероятно, вам следует избегать запроса локали с какой-либо конкретной кодировкой кодировки, поскольку она может быть недоступна в некоторых системах.
Используйте одну из сторонних библиотек для интернационализации. Например, PyICU позволяет использовать любую доступную локаль, не влияя на весь процесс (и даже разбирать числа с определенными разделителями тысяч без использования локалей):
Напишите свою собственную функцию синтаксического анализа, если у вас ее нет, что установить сторонние библиотеки, чтобы сделать это "правильно". Это может быть так же просто, как int(data.replace(',', '')) когда строгая проверка не требуется.
Ответ 3
Замените запятые пустыми строками и превратите результирующую строку в int или a float.