Python3中⽂⽂件读写⽅法
字符串在Python内部的表⽰是Unicode编码,因此,在做编码转换时,通常需要以Unicode作为中间编码,即先将其他编码的字符串解码(decode)成Unicode,再从Unicode编码(encode)成另⼀种编码。
在新版本的python3中,取消了unicode类型,代替它的是使⽤unicode字符的字符串类型(str),字符串类型(str)成为基础类型如下所⽰,⽽编码后的变为了字节类型(bytes) 但是两个函数的使⽤⽅法不变:
decode    encode
python怎么读取txt
bytes ------> str(unicode)------>bytes
u = '中⽂' #指定字符串类型对象u
str = u.encode('gb2312') #以gb2312编码对u进⾏编码,获得bytes类型对象str
u1 = str.decode('gb2312')#以gb2312编码对字符串str进⾏解码,获得字符串类型对象u1
u2 = str.decode('utf-8')#如果以utf-8的编码对str进⾏解码得到的结果,将⽆法还原原来的字符串内容
⽂件读取问题
假如我们读取⼀个⽂件,⽂件保存时,使⽤的编码格式,决定了我们从⽂件读取的内容的编码格式,例如,我们从记事本新建⼀个⽂本⽂件, 编辑内容,保存的时候注意,编码格式是可以选择的,例如我们可以选择gb2312,那么使⽤python读取⽂件内容,⽅式如下:
f = open('','r')
s = f.read() #读取⽂件内容,如果是不识别的encoding格式(识别的encoding类型跟使⽤的系统有关),这⾥将读取失败
'''假设⽂件保存时以gb2312编码保存'''
u = s.decode('gb2312') #以⽂件保存格式对内容进⾏解码,获得unicode字符串
'''下⾯我们就可以对内容进⾏各种编码的转换了'''
str = u.encode('utf-8')#转换为utf-8编码的字符串str
str1 = u.encode('gbk')#转换为gbk编码的字符串str1
str1 = u.encode('utf-16')#转换为utf-16编码的字符串str1
codecs进⾏⽂件的读取
python给我们提供了⼀个包codecs进⾏⽂件的读取,这个包中的open()函数可以指定编码的类型:
import codecs
f = codecs.open('','r+',encoding='utf-8')#必须事先知道⽂件的编码格式,这⾥⽂件编码是使⽤的utf-8
content = f.read()#如果open时使⽤的encoding和⽂件本⾝的encoding不⼀致的话,那么这⾥将将会产⽣错误
f.write('你想要写⼊的信息')
f.close()
以上这篇Python3 中⽂⽂件读写⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。