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笔记(1) 关于我们应不应该继续学习python
Oct 24 Python
给Python的Django框架下搭建的BLOG添加RSS功能的教程
Apr 08 Python
python使用PyGame播放Midi和Mp3文件的方法
Apr 24 Python
Python验证码识别处理实例
Dec 28 Python
Python使用django搭建web开发环境
Jun 09 Python
Python3基础教程之递归函数简单示例
Jun 07 Python
python多线程并发实例及其优化
Jun 27 Python
基于Django静态资源部署404的解决方法
Jul 28 Python
在Pytorch中计算自己模型的FLOPs方式
Dec 30 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
Jan 20 Python
pycharm的python_stubs问题
Apr 08 Python
python 实现德洛内三角剖分的操作
Apr 22 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中防止SQL注入的最佳解决方法
2013/04/25 PHP
Thinkphp微信公众号支付接口
2016/08/04 PHP
[原创]php正则删除html代码中class样式属性的方法
2017/05/24 PHP
php获取微信基础接口凭证Access_token
2018/08/23 PHP
基于JQuery的密码强度验证代码
2010/03/01 Javascript
JavaScript中使用构造函数实现继承的代码
2010/08/12 Javascript
JS仿flash上传头像效果实现代码
2011/07/18 Javascript
将list转换为json失败的原因
2013/12/17 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
纯jquery实现模仿淘宝购物车结算
2015/08/20 Javascript
jquery实现点击其他区域时隐藏下拉div和遮罩层的方法
2015/12/23 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
2016/05/12 Javascript
JavaScript中instanceof运算符的使用示例
2016/06/08 Javascript
VueJs 将接口用webpack代理到本地的方法
2017/11/27 Javascript
通过js动态创建标签,并设置属性方法
2018/02/24 Javascript
微信小程序基于高德地图查找位置并显示文字
2019/10/30 Javascript
从Node.js事件触发器到Vue自定义事件的深入讲解
2020/06/26 Javascript
使用node-media-server搭建一个简易的流媒体服务器
2021/01/20 Javascript
Python实现Linux下守护进程的编写方法
2014/08/22 Python
详解Python中contextlib上下文管理模块的用法
2016/06/28 Python
python 网络编程常用代码段
2016/08/28 Python
python顺序的读取文件夹下名称有序的文件方法
2018/07/11 Python
Python基本socket通信控制操作示例
2019/01/30 Python
PyTorch中Tensor的维度变换实现
2019/08/18 Python
优质飞蝇钓和渔具:RiverBum
2020/05/10 全球购物
国际政治个人自荐信范文
2013/11/26 职场文书
护士思想汇报
2014/01/12 职场文书
银行工作检查书范文
2014/01/31 职场文书
网络技术专业推荐信
2014/02/20 职场文书
表彰会主持词
2014/03/26 职场文书
出纳工作检讨书
2014/10/18 职场文书
html实现随机点名器的示例代码
2021/04/02 Javascript
Django项目如何获得SSL证书与配置HTTPS
2021/04/30 Python
python 远程执行命令的详细代码
2022/02/15 Python
virtualenv隔离Python环境的问题解析
2022/06/21 Python
Python可视化神器pyecharts绘制地理图表
2022/07/07 Python