Python读取文件编码及内容

当你不知道文件的具体编码方式的时候,如何正确的读取文件内容呢?

报错日志

当我们不知道文件编码方式的时候,贸然的读取文件,有时候就会出现这些问题

1
2
UnicodeDecodeError: 'gbk' codec can't decode byte
......

解决办法

所以就是编码方式不对,那么需要先能识别文件的编码文件,然后根据此编码方式进行对文件编码,最后返回文件内容。
可以借助一个第三方库chardet

1
2
# 安装chardet
pip install chardet

正确实例

1
2
3
4
with open("your_file", 'rb') as fp:
file_data = fp.read()
result = chardet.detect(file_data)
file_content = file_data.decode(encoding=result['encoding'])
Donate comment here