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将DataFrame的某一列作为index的方法
Apr 08 Python
python监控文件并且发送告警邮件
Jun 21 Python
python matlibplot绘制多条曲线图
Feb 19 Python
Python3中的最大整数和最大浮点数实例
Jul 09 Python
python字典的遍历3种方法详解
Aug 10 Python
python中sort和sorted排序的实例方法
Aug 26 Python
pandas 对group进行聚合的例子
Dec 27 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
Jan 18 Python
Python3.8安装Pygame教程步骤详解
Aug 14 Python
Python计算矩阵的和积的实例详解
Sep 10 Python
Python APScheduler执行使用方法详解
Dec 10 Python
python常见的占位符总结及用法
Jul 02 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中实现中文字符进制转换原理分析
2011/12/06 PHP
phpmyadmin3 安装配置图解教程
2012/03/29 PHP
thinkphp5框架实现的自定义扩展类操作示例
2019/05/16 PHP
php学习笔记之字符串常见操作总结
2019/07/16 PHP
Firefox div高度自适应
2009/04/28 Javascript
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
可以用来调试JavaScript错误的解决方案
2010/08/07 Javascript
JQuery跨Iframe选择实现代码
2010/08/19 Javascript
JavaScript判断变量是否为空的自定义函数分享
2015/01/31 Javascript
如何使用jQuery技术开发ios风格的页面导航菜单
2015/07/29 Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
2015/12/10 Javascript
JS加载iFrame出现空白问题的解决办法
2016/05/13 Javascript
JavaScript实现的微信二维码图片生成器的示例
2016/10/26 Javascript
js数组与字符串常用方法总结
2017/01/13 Javascript
Vue如何引入远程JS文件
2017/04/20 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
原生js添加一个或多个类名的方法分析
2019/07/30 Javascript
python模拟enum枚举类型的方法小结
2015/04/30 Python
python 并发编程 非阻塞IO模型原理解析
2019/08/20 Python
详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件
2019/08/23 Python
python3-flask-3将信息写入日志的实操方法
2019/11/12 Python
python判断字符串以什么结尾的实例方法
2020/09/18 Python
python解压zip包中文乱码解决方法
2020/11/27 Python
python 爬虫之selenium可视化爬虫的实现
2020/12/04 Python
python 实现的IP 存活扫描脚本
2020/12/10 Python
css3个性化字体_动力节点Java学院整理
2017/07/12 HTML / CSS
程序设计HTML5 Canvas API
2013/04/08 HTML / CSS
html5中svg canvas和图片之间相互转化思路代码
2014/01/24 HTML / CSS
详解HTML5中download属性的应用
2015/08/06 HTML / CSS
Feelunique中文官网:欧洲最大化妆品零售电商
2020/07/10 全球购物
EntityManager都有哪些方法
2013/11/01 面试题
高中生的学习总结自我鉴定
2013/10/26 职场文书
学术会议欢迎词
2014/01/09 职场文书
出纳员的岗位职责
2014/02/22 职场文书
小班上学期幼儿评语
2014/12/30 职场文书
Python实现文字pdf转换图片pdf效果
2022/04/03 Python