Python3 中文文件读写方法


Posted in Python onJanuary 23, 2018

字符串在Python内部的表示是Unicode编码,因此,在做编码转换时,通常需要以Unicode作为中间编码,即先将其他编码的字符串解码(decode)成Unicode,再从Unicode编码(encode)成另一种编码。

在新版本的python3中,取消了unicode类型,代替它的是使用unicode字符的字符串类型(str),字符串类型(str)成为基础类型如下所示,而编码后的变为了字节类型(bytes) 但是两个函数的使用方法不变:

decode    encode
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进行解码得到的结果,将无法还原原来的字符串内容

文件读取问题

假如我们读取一个文件,文件保存时,使用的编码格式,决定了我们从文件读取的内容的编码格式,例如,我们从记事本新建一个文本文件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编码的字符串str
str1 = u.encode('gbk')#转换为gbk编码的字符串str1
str1 = 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()

以上这篇Python3 中文文件读写方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
利用python将xml文件解析成html文件的实现方法
Dec 22 Python
Python实现识别手写数字 简易图片存储管理系统
Jan 29 Python
Python Requests模拟登录实现图书馆座位自动预约
Apr 27 Python
python绘制圆柱体的方法
Jul 02 Python
Python中实例化class的执行顺序示例详解
Oct 14 Python
Python Pexpect库的简单使用方法
Jan 29 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
Jun 18 Python
解决Python正则表达式匹配反斜杠''\''问题
Jul 17 Python
python创建学生成绩管理系统
Nov 22 Python
django框架基于queryset和双下划线的跨表查询操作详解
Dec 11 Python
pyinstaller将含有多个py文件的python程序做成exe
Apr 29 Python
python神经网络学习 使用Keras进行回归运算
May 04 Python
Python3之文件读写操作的实例讲解
Jan 23 #Python
Python实现邮件的批量发送的示例代码
Jan 23 #Python
python实现自动发送邮件发送多人、群发、多附件的示例
Jan 23 #Python
python正则表达式面试题解答
Apr 28 #Python
Django中使用celery完成异步任务的示例代码
Jan 23 #Python
python3 发送任意文件邮件的实例
Jan 23 #Python
Python程序员面试题 你必须提前准备!(答案及解析)
Jan 23 #Python
You might like
简单的用PHP编写的导航条程序
2006/10/09 PHP
转PHP手册及PHP编程标准
2006/12/17 PHP
php下把数组保存为文件格式的实例应用
2010/02/08 PHP
使用openssl实现rsa非对称加密算法示例
2014/01/24 PHP
PHP获取远程图片并保存到本地的方法
2015/05/12 PHP
php支持断点续传、分块下载的类
2016/05/02 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
2018/04/08 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
JS动态添加option和删除option(附实例代码)
2013/04/01 Javascript
javascript:void(0)是什么意思示例介绍
2013/11/17 Javascript
用循环或if语句从json中取数据示例
2014/08/18 Javascript
JavaScript实现梯形乘法表的方法
2015/04/25 Javascript
JS实现的车标图片提示效果代码
2015/10/10 Javascript
跟我学习javascript的作用域与作用域链
2015/11/19 Javascript
JavaScript中的Array 对象(数组对象)
2016/06/02 Javascript
一种Javascript解释ajax返回的json的好方法(推荐)
2016/06/02 Javascript
JS弹出窗口插件zDialog简单用法示例
2016/06/12 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
js实现漫天星星效果
2017/01/19 Javascript
JSON 数据详解及实例代码分析
2017/01/20 Javascript
js实现3D图片环展示效果
2017/03/09 Javascript
[03:24]DOTA2超级联赛专访hao 大翻盘就是逆袭
2013/05/24 DOTA
python使用心得之获得github代码库列表
2014/06/25 Python
python并发和异步编程实例
2018/11/15 Python
Python 脚本获取ES 存储容量的实例
2018/12/27 Python
python如何实现数据的线性拟合
2019/07/19 Python
使用python实现飞机大战游戏
2020/03/23 Python
容易被忽略的Python内置类型
2020/09/03 Python
Perfume’s Club法国站:购买香水和化妆品
2019/05/02 全球购物
Hobbs官方网站:英国奢华女性时尚服装
2020/02/22 全球购物
小学毕业寄语大全
2014/04/03 职场文书
医学生求职信
2014/07/01 职场文书
银行竞聘报告范文
2014/11/06 职场文书
社区法制宣传月活动总结
2015/05/07 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书
财务人员廉洁自律心得体会
2016/01/13 职场文书