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的urllib库提交WEB表单
Feb 24 Python
Python内置函数的用法实例教程
Sep 08 Python
Python实现在线程里运行scrapy的方法
Apr 07 Python
Python的Django框架下管理站点的基本方法
Jul 17 Python
Python 中开发pattern的string模板(template) 实例详解
Apr 01 Python
Selenium定位元素操作示例
Aug 10 Python
python 实现分页显示从es中获取的数据方法
Dec 26 Python
详解python多线程之间的同步(一)
Apr 03 Python
python操作小程序云数据库实现简单的增删改查功能
Jun 06 Python
opencv之为图像添加边界的方法示例
Dec 26 Python
python 装饰器的实际作用有哪些
Sep 07 Python
vue.js刷新当前页面的实例讲解
Dec 29 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的ob_start() 控制您的浏览器cache
2009/08/03 PHP
关于查看MSSQL 数据库 用户每个表 占用的空间大小
2013/06/21 PHP
Symfony2安装第三方Bundles实例详解
2016/02/04 PHP
ThinkPHP框架实现FTP图片上传功能示例
2019/04/08 PHP
javascript 面向对象全新理练之原型继承
2009/12/03 Javascript
JS+CSS实现一个气泡提示框
2013/08/18 Javascript
JavaScript数据类型详解
2015/04/01 Javascript
AngularJs动态加载模块和依赖注入详解
2016/01/11 Javascript
jQuery中ScrollTo用法示例
2016/09/04 Javascript
深入理解Angular4中的依赖注入
2017/06/07 Javascript
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
Vue的data、computed、watch源码浅谈
2020/04/04 Javascript
JS如何定义用字符串拼接的变量
2020/07/11 Javascript
[02:45]2016年中国刀塔全程回顾,完美“圣”典即将上演
2016/12/15 DOTA
[06:48]DOTA2-DPC中国联赛2月26日Recap集锦
2021/03/11 DOTA
python获得一个月有多少天的方法
2015/06/04 Python
Windows中安装使用Virtualenv来创建独立Python环境
2016/05/31 Python
python发送邮件实例分享
2017/07/28 Python
Python实现简单层次聚类算法以及可视化
2019/03/18 Python
django认证系统 Authentication使用详解
2019/07/22 Python
python之生产者消费者模型实现详解
2019/07/27 Python
python 使用shutil复制图片的例子
2019/12/13 Python
Python正则表达式急速入门(小结)
2019/12/16 Python
Keras使用tensorboard显示训练过程的实例
2020/02/15 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
2020/03/10 Python
Python3操作读写CSV文件使用包过程解析
2020/04/10 Python
python实时监控logstash日志代码
2020/04/27 Python
python判断正负数方式
2020/06/03 Python
CSS3中currentColor关键字的妙用
2016/02/27 HTML / CSS
美国婴儿服装购物网站:Gerber Childrenswear
2020/05/06 全球购物
个人能力自我鉴赏
2014/01/25 职场文书
上班离岗检讨书
2014/09/10 职场文书
工程承包协议书范本
2014/09/29 职场文书
MongoDB安装使用并实现Python操作数据库
2021/06/28 MongoDB
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
2021/08/30 Python
利用Python实时获取steam特惠游戏数据
2022/06/25 Python