使用chardet模块获取文件的编码格式,进而正确的读取文件内容

import  chardet



'''
不同的文件编写的时候,会有不同的编码格式,有的用utf-8进行的编码,有的呢用的是gbk进行的编码。
在我们读取文件的时候,我们实现并不知情这个当前读取的文件是用的什么编码方式进行的存储。所以就要用的chardet模块
chardet.detect(文件对象),在打开文件的时候,用rb或者wb进行打开。然后将文件对象通过chardet模块获取它当时编码的格式

然后获取文件的时候,decode解码的时候,通过decode(编码格式)进行解码,展现。


'''

# f=open('test1.txt','w',encoding = 'utf-8')
# f.write('你好,我好大减价好')

# f=open('test2.txt','w',encoding ='gbk')
# f.write('你好,我好大减价好')


f=open('test2.txt','rb') #先通过二进制将文件打开
res= f.read()
print(res) # b'\xc4\xe3\xba\xc3\xa3\xac\xce\xd2\xba\xc3\xb4\xf3\xbc\xf5\xbc\xdb\xba\xc3'

tt =chardet.detect(res) #通过chardet模块,获取打开的文件对象是什么编码格式
print(tt)  #{'encoding': 'GB2312', 'confidence': 0.99, 'language': 'Chinese'}




#拿到编码格式后,将文件decode解码
print(res.decode('gbk')) #你好,我好大减价好

  

posted @ 2019-02-04 14:41  花er壹樣的女人  阅读(168)  评论(0编辑  收藏  举报