Python — как повторно экспортировать файл в формате utf-8

#python #pandas #csv

Вопрос:

У меня есть файлы csv и excel, которые были неправильно сохранены в формате UTF-8, поэтому я не могу просто загрузить их в pandas. Вручную я могу открыть его и сохранить в формате excel или csv и выбрать utf-8, а затем он отлично работает в pandas, но у меня слишком много файлов, чтобы сделать это вручную, и я не хочу заменять необработанный файл (поэтому о его перезаписи не может быть и речи). Как я могу выполнить это программно?

Я подумал, что одним из решений может быть сделать что-то подобное:

 import pandas as pd   with open('path/to/bad_file.csv', 'rb') as f:  text = f.read()   with open('fixed-temp.csv', 'w', encoding='utf8') as f:  f.write(text.decode(encoding="latin-1"))   df = pd.read_csv('fixed-temp.csv')  

Но это оставляет после себя временный файл или новый файл, который мне не нужен. Я думаю, я мог бы написать больше кода, чтобы затем удалить этот временный файл, но это кажется нечистым, и я бы предпочел инкапсулировать все это в одну удобную функцию.

Комментарии:

1. похоже pd.read_csv() , у него есть параметр кодирования. Ты пробовал df = pd.read_csv('file.csv',encoding='latin-1') ?

2. @scotscotmcc да, это не работает