Я работаю над проектом, использующим Python (3.6), в котором мне нужно прочитать текстовые файлы из каталога, который может содержать тысячи текстовых файлов, затем мне нужно провести некоторый анализ их и загрузить результаты в облачное хранилище Google.,Там возникают ошибки кодирования.
Вот что я пробовал:
из views.py
:
def predict_encoding(file_path, n_lines=60):
'''Predict a file's encoding using chardet'''
import chardet
# Open the file as binary data
with open(file_path, 'rb') as f:
# Join binary lines for specified number of lines
rawdata = b''.join([f.read() for _ in range(n_lines)])
encoding = chardet.detect(rawdata)['encoding']
print('Default encoding is: {}'.format(encoding))
if encoding is None:
rawdata.decode('utf8').encode('ascii', 'ignore')
print('updated decoding is: {}'.format(chardet.detect(rawdata)['encoding']))
return chardet.detect(rawdata)['encoding']
encoding = predict_encoding(text_path)
txt = Path(text_path).read_text(encoding=encoding)
, но для некоторых файлов (см.файл примера ниже :) он возвращает ошибку вроде:
/ Users / abdul / Downloads / to_save / cert2.txt
Кодировка по умолчанию: Нет
обновленное декодирование: Нет
возвращение codecs.charmap_decode (input, self.errors, decoding_table) [0]
UnicodeDecodeError: кодек 'charmap' не может декодировать байт 0x81 в позиции 339: символотображается на
Вот пример, в котором возвращается эта ошибка: https://textuploader.com/d8ec5