【发布时间】:2018-12-27 06:55:06
【问题描述】:
我正在使用 Python(3.6) 开发一个项目,其中我需要从包含数千个文本文件的目录中读取文本文件,然后我需要对它们进行一些分析并将结果上传到谷歌云存储. 出现编码错误。
这是我尝试过的:
来自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”编解码器无法解码位置 339 中的字节 0x81:字符映射到
这是返回此错误的示例: https://textuploader.com/d8ec5
【问题讨论】:
-
尝试用ingore进行Latin-1编码
-
这里没有任何变化!
标签: python encoding character-encoding pythonpath