Python3 中文文件读写
来源:互联网 发布:f.lux for mac下载 编辑:程序博客网 时间:2024/04/27 13:34
字符串在Python内部的表示是Unicode编码,因此,在做编码转换时,通常需要以Unicode作为中间编码,即先将其他编码的字符串解码(decode)成Unicode,再从Unicode编码(encode)成另一种编码。
在新版本的python3中,取消了unicode类型,代替它的是使用unicode字符的字符串类型(str),字符串类型(str)成为基础类型如下所示,而编码后的变为了字节类型(bytes)但是两个函数的使用方法不变:
decode encodebytes ------> 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进行解码得到的结果,将无法还原原来的字符串内容
文件读取问题
假如我们读取一个文件,文件保存时,使用的编码格式,决定了我们从文件读取的内容的编码格式,例如,我们从记事本新建一个文本文件test.txt, 编辑内容,保存的时候注意,编码格式是可以选择的,例如我们可以选择gb2312,那么使用python读取文件内容,方式如下:
f = open('test.txt','r')s = f.read() #读取文件内容,如果是不识别的encoding格式(识别的encoding类型跟使用的系统有关),这里将读取失败'''假设文件保存时以gb2312编码保存'''u = s.decode('gb2312') #以文件保存格式对内容进行解码,获得unicode字符串'''下面我们就可以对内容进行各种编码的转换了'''str = u.encode('utf-8')#转换为utf-8编码的字符串strstr1 = u.encode('gbk')#转换为gbk编码的字符串str1str1 = u.encode('utf-16')#转换为utf-16编码的字符串str1
codecs进行文件的读取
python给我们提供了一个包codecs进行文件的读取,这个包中的open()函数可以指定编码的类型:
import codecs f = codecs.open('text.text','r+',encoding='utf-8')#必须事先知道文件的编码格式,这里文件编码是使用的utf-8 content = f.read()#如果open时使用的encoding和文件本身的encoding不一致的话,那么这里将将会产生错误 f.write('你想要写入的信息') f.close()
1 0
- Python3 中文文件读写
- python3-读写文件
- python3 文件读写
- python3学习--文件读写
- python3--文件读写1
- Python3读写csv文件
- python3 文件读写(2)
- python3 读写文件换行符
- python3的文件读写模式
- C#读写中文文件
- C#读写中文文件
- C#读写中文文件
- java读写中文文件
- C#读写中文文件
- ini文件读写中文
- python3调用COM读写excel文件
- Python3.2官方文档翻译--文件读写
- Python3之文件读写操作详解
- 每日打卡 2017.03.15 北大信科2017机试真题题解
- 面向对象OO——类之间的关系
- Docker使用-完整的Dockerfile
- JAVA-calendar.add(Calendar.Month,1):1月31号加一月是多少号?
- Docker构建镜像
- Python3 中文文件读写
- javascript的基本概念
- iTunes Connect
- 【复习linux的使用】(四)——权限/进程
- 不同的梯度下降算法
- 【Java NIO的深入研究6】JAVA NIO之Scatter-Gather
- IE浏览器拖放事件e.dataTransfer.setData(key,value)报错
- SSM框架搭建及源码解析--spring容器Bean的注册(二)
- 使用flask-sqlalchemy创建一对多的关系表