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绘制双柱形图代码实例
Dec 14 Python
详解多线程Django程序耗尽数据库连接的问题
Oct 08 Python
解决python3运行selenium下HTMLTestRunner报错的问题
Dec 27 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
May 13 Python
TensorFlow查看输入节点和输出节点名称方式
Jan 04 Python
浅谈Python中os模块及shutil模块的常规操作
Apr 03 Python
Python的历史与优缺点整理
May 26 Python
win10下python3.8的PIL库安装过程
Jun 08 Python
TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)
Jun 22 Python
Django Admin后台模型列表页面如何添加自定义操作按钮
Nov 11 Python
Python爬虫之Selenium警告框(弹窗)处理
Dec 04 Python
Python入门之使用pandas分析excel数据
May 12 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 XML操作类DOMDocument
2009/12/16 PHP
php中模拟POST传递数据的两种方法分享
2011/09/16 PHP
PHP实现的堆排序算法详解
2017/08/17 PHP
php判断文件上传图片格式的实例详解
2017/09/30 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
2017/11/21 PHP
用 Javascript 验证表单(form)中的单选(radio)值
2009/09/08 Javascript
js 火狐下取本地路径实现思路
2013/04/02 Javascript
用Js实现的动态增加表格示例自己写的
2013/10/21 Javascript
jQuery的one()方法用法实例
2015/01/19 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
2015/03/04 Javascript
jQuery实现新消息在网页标题闪烁提示
2015/06/23 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
javascript动态添加checkbox复选框的方法
2015/12/23 Javascript
BootStrap实现邮件列表的分页和模态框添加邮件的功能
2016/10/13 Javascript
jquery+Jscex打造游戏力度条
2020/09/12 Javascript
bootstrap模态框实现拖拽效果
2016/12/14 Javascript
bootstrap中添加额外的图标实例代码
2017/02/15 Javascript
vue页面离开后执行函数的实例
2018/03/13 Javascript
从vue源码解析Vue.set()和this.$set()
2018/08/30 Javascript
Python去除列表中重复元素的方法
2015/03/20 Python
深入理解python对json的操作总结
2017/01/05 Python
深入理解Python3中的http.client模块
2017/03/29 Python
django认证系统实现自定义权限管理的方法
2018/07/16 Python
python实现删除列表中某个元素的3种方法
2020/01/15 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
2020/03/06 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
2021/02/25 Python
aden + anais官方网站:婴儿襁褓、毯子、尿布和服装
2017/06/21 全球购物
高性能钓鱼服装:Huk Gear
2019/02/20 全球购物
美国爆米花工厂:The Popcorn Factory
2019/09/14 全球购物
瑞典耳机品牌:URBANISTA
2019/12/03 全球购物
工作决心书范文
2014/03/11 职场文书
学校领导班子四风问题整改意见
2014/10/02 职场文书
联谊会开场白
2015/06/01 职场文书
就业证明函
2015/06/17 职场文书
科级干部培训心得体会
2016/01/06 职场文书
日本官方排名前10的动漫,名侦探柯南上榜,第一是一部创造历史的动漫
2022/03/18 日漫