文件存放在硬盘是以二进制方式存储,读取出来需要对其根据字符编码表进行转换,python3默认以utf-8编码。
utf8三个字节一个字符,gbk两个字节一个字符
文件读取
以utf-8编码打开gbk存储的文件并读取内容
f=open(file='test.txt',mode='r',encoding='utf-8') data=f.read() f.close() print(data)
file:需打开的文件
mode:打开方式
encoding:打开的编码格式
以gbk方式打开即可正常读取
f=open(file='test.txt',mode='r',encoding='gbk') data=f.read() f.close() print(data)
文件编码检测
chardet更具编码规律尝试检测文件编码
import chardet f=open('test.txt',mode='rb') data=f.read() f.close() result=chardet.detect(data) print(result)
confidence:编码可信度
encoding:可能的编码
根据可能的编码格式进行解码(decode)
import chardet f=open('test.txt',mode='rb') data=f.read() f.close() result=chardet.detect(data) print(result) #根据chardet检测出来的编码格式进行解码 print(data.decode('gb2312'))