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基础教程之浅拷贝和深拷贝实例详解
Jul 15 Python
python中abs&map&reduce简介
Feb 20 Python
详解python实现线程安全的单例模式
Mar 05 Python
对python中的six.moves模块的下载函数urlretrieve详解
Dec 19 Python
python广度优先搜索得到两点间最短路径
Jan 17 Python
windows下numpy下载与安装图文教程
Apr 02 Python
python字符串和常用数据结构知识总结
May 21 Python
关于django 1.10 CSRF验证失败的解决方法
Aug 31 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
Feb 11 Python
利用Python实现某OA系统的自动定位功能
May 27 Python
python实现简单反弹球游戏
Apr 12 Python
Python爬虫入门案例之爬取二手房源数据
Oct 16 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利用COM对象访问SQLServer、Access
2006/10/09 PHP
php启动时候提示PHP startup的解决方法
2013/05/07 PHP
php读取图片内容并输出到浏览器的实现代码
2013/08/08 PHP
Javascript条件判断使用小技巧总结
2008/09/08 Javascript
js选取多个或单个元素的实现代码(用class)
2012/08/22 Javascript
js关闭父窗口时关闭子窗口
2013/04/01 Javascript
Jquery实现三层遍历删除功能代码
2013/04/23 Javascript
jQuery之ajax技术的详细介绍
2013/06/19 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
2015/03/16 Javascript
jQuery实现带延迟的二级tab切换下拉列表效果
2015/09/01 Javascript
jQuery UI库中dialog对话框功能使用全解析
2016/04/23 Javascript
jquery计算出left和top,让一个div水平垂直居中的简单实例
2016/07/13 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
Js实现中国公民身份证号码有效性验证实例代码
2017/05/03 Javascript
JavaScript编写的网页小游戏,很给力
2017/08/18 Javascript
推荐一个基于Node.js的表单验证库
2019/02/15 Javascript
小程序实现订单倒计时功能
2019/04/23 Javascript
Vue实现点击按钮复制文本内容的例子
2019/11/09 Javascript
Javascript模拟实现new原理解析
2020/03/03 Javascript
js实现网页随机验证码
2020/10/19 Javascript
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
Python 多进程并发操作中进程池Pool的实例
2017/11/01 Python
python中闭包Closure函数作为返回值的方法示例
2017/12/17 Python
scrapy spider的几种爬取方式实例代码
2018/01/25 Python
对Tensorflow中的变量初始化函数详解
2018/07/27 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
2019/02/15 Python
CSS3 渐变(Gradients)之CSS3 径向渐变
2016/07/08 HTML / CSS
美国睫毛、眉毛精华液领导品牌:RevitaLash Cosmetics
2018/03/26 全球购物
俄罗斯香水和化妆品购物网站:Л’Этуаль
2018/05/10 全球购物
计算机应用专业学生的自我评价分享
2013/11/03 职场文书
网络编辑职责
2014/03/01 职场文书
商业用房租赁协议书
2014/10/13 职场文书
详解Python 3.10 中的新功能和变化
2021/04/28 Python
mysql升级到5.7时,wordpress导数据报错1067的问题
2021/05/27 MySQL
MySQL中B树索引和B+树索引的区别详解
2022/03/03 MySQL
vue里使用create, mounted调用方法
2022/04/26 Vue.js