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 相关文章推荐
在Windows8上的搭建Python和Django环境
Jul 03 Python
python实现将元祖转换成数组的方法
May 04 Python
Python 专题二 条件语句和循环语句的基础知识
Mar 19 Python
Python实现简单http服务器
Apr 12 Python
python pandas中对Series数据进行轴向连接的实例
Jun 08 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
Jul 31 Python
django解决跨域请求的问题详解
Jan 20 Python
Python中url标签使用知识点总结
Jan 16 Python
Python实现点云投影到平面显示
Jan 18 Python
windows、linux下打包Python3程序详细方法
Mar 17 Python
Python通过Pillow实现图片对比
Apr 29 Python
Python爬虫+Tkinter制作一个翻译软件的示例
Feb 20 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 setcookie() cannot modify header information 的解决方法
2009/01/09 PHP
JS中完美兼容各大浏览器的scrolltop方法
2015/04/17 Javascript
jQuery检测某个元素是否存在代码分享
2015/07/09 Javascript
详解Node.js模块间共享数据库连接的方法
2016/05/24 Javascript
Vue.js开发环境快速搭建教程
2017/03/17 Javascript
layui导航栏实现代码
2017/05/19 Javascript
JavaScript实现选中文字提示新浪微博分享效果
2017/06/15 Javascript
jQuery实现节点的追加、替换、删除、复制功能示例
2017/07/11 jQuery
javascript  数组排序与对象排序的实例
2017/07/17 Javascript
使用Vue动态生成form表单的实例代码
2018/04/26 Javascript
Redux实现组合计数器的示例代码
2018/07/04 Javascript
vue绑定事件后获取绑定事件中的this方法
2018/09/15 Javascript
js取小数点后两位四种方法
2019/01/18 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
2019/07/31 jQuery
pygame加载中文名mp3文件出现error
2017/03/31 Python
Python文件的读写和异常代码示例
2017/10/31 Python
Python实现XML文件解析的示例代码
2018/02/05 Python
Python实现Dijkstra算法
2018/10/17 Python
解析Python3中的Import
2019/10/13 Python
Python猜数字算法题详解
2020/03/01 Python
Python3 中sorted() 函数的用法
2020/03/24 Python
python 实现仿微信聊天时间格式化显示的代码
2020/04/17 Python
解决Python spyder显示不全df列和行的问题
2020/04/20 Python
css 如何让背景图片拉伸填充避免重复显示
2013/07/11 HTML / CSS
HTML5拖拽文件上传的示例代码
2021/03/04 HTML / CSS
美国珠宝精品店:Opulent Jewelers
2019/08/20 全球购物
Android面试题附答案
2014/12/08 面试题
介绍一下linux文件系统分配策略
2012/11/17 面试题
应聘自荐信
2013/12/14 职场文书
奥利奥广告词
2014/03/20 职场文书
论文评语大全
2014/04/29 职场文书
死亡赔偿协议书
2015/01/28 职场文书
教学质量月活动总结
2015/05/11 职场文书
信用卡工作证明范本
2015/06/19 职场文书
sql查询结果列拼接成逗号分隔的字符串方法
2021/05/25 SQL Server
Python turtle实现贪吃蛇游戏
2021/06/18 Python