Прочитайте файл и запишите его обратно в нужной кодировке:
with open('input.csv','r',encoding='utf-8-sig') as fin:
with open('output.csv','w',encoding='utf-8-sig') as fout:
fout.write(fin.read())
utf-8-sig
код c удалит спецификацию, если она присутствует при чтении, и добавит спецификацию при записи, поэтому Выше можно безопасно запускать файлы с оригинальной спецификацией или без нее.
Вы можете выполнить конвертацию на месте, выполнив:
file = 'test.csv'
with open(file,'r',encoding='utf-8-sig') as f:
data = f.read()
with open(file,'w',encoding='utf-8-sig') as f:
f.write(data)
Обратите внимание, что utf16
также работает. Некоторые старые Excels неправильно обрабатывают UTF-8.