Предположим, я читаю файл, содержащий 3 числа, разделенные запятыми. Файл сохранен с неизвестной кодировкой, пока имею дело с ANSI и UTF-8. Если файл был в кодировке UTF-8 и в нем была 1 строка со значениями 115,113,12, то:
with open(file) as f:
a,b,c=map(int,f.readline().split(','))
бросил бы это:
invalid literal for int() with base 10: '\xef\xbb\xbf115'
Первое число всегда искажено этими символами '\xef\xbb\xbf'. Для остальных 2 номеров преобразование работает нормально. Если я вручную заменю '\xef\xbb\xbf' на '', а затем сделаю преобразование int, это сработает.
Есть ли лучший способ сделать это для любого типа закодированного файла?