#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 да, это не работает