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自动化工具日志查询分析脚本代码实现
Nov 26 Python
python中通过预先编译正则表达式提高效率
Sep 25 Python
使用Numpy读取CSV文件,并进行行列删除的操作方法
Jul 04 Python
Python实现App自动签到领取积分功能
Sep 29 Python
Python设计模式之简单工厂模式实例详解
Jan 22 Python
Python图像处理之图片文字识别功能(OCR)
Jul 30 Python
django 通过url实现简单的权限控制的例子
Aug 16 Python
对Pytorch神经网络初始化kaiming分布详解
Aug 18 Python
python异常处理和日志处理方式
Dec 24 Python
Python实现RabbitMQ6种消息模型的示例代码
Mar 30 Python
python 自定义异常和主动抛出异常(raise)的操作
Dec 11 Python
单身狗福利?Python爬取某婚恋网征婚数据
Jun 03 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
Terran建筑一览
2020/03/14 星际争霸
一个捕获函数输出的函数
2007/02/14 PHP
Php Image Resize图片大小调整的函数代码
2011/01/17 PHP
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
PHP多进程编程总结(推荐)
2016/07/18 PHP
jquery 应用代码 方便的排序功能
2010/02/06 Javascript
javascript suggest效果 自动完成实现代码分享
2012/02/17 Javascript
打开新窗口关闭当前页面不弹出关闭提示js代码
2013/03/18 Javascript
Javascript中call的两种用法实例
2013/12/13 Javascript
jQuery插件开发的两种方法及$.fn.extend的详解
2014/01/16 Javascript
javascript 原型链维护和继承详解
2014/11/26 Javascript
浅谈javascript中this在事件中的应用
2015/02/15 Javascript
angular-ngSanitize模块-$sanitize服务详解
2017/06/13 Javascript
Nuxt.js之自动路由原理的实现方法
2018/11/21 Javascript
微信小程序开发实现消息推送
2020/11/18 Javascript
关于JSON解析的实现过程解析
2019/10/08 Javascript
[00:48]完美“圣”典2016风云人物:xiao8宣传片
2016/11/30 DOTA
[01:01:04]2018DOTA2亚洲邀请赛 4.5 淘汰赛 OpTic vs TNC 第一场
2018/04/06 DOTA
朴素贝叶斯算法的python实现方法
2014/11/18 Python
用python简单实现mysql数据同步到ElasticSearch的教程
2018/05/30 Python
python中dict使用方法详解
2019/07/17 Python
用django设置session过期时间的方法解析
2019/08/05 Python
python怎么删除缓存文件
2020/07/19 Python
Python Celery异步任务队列使用方法解析
2020/08/10 Python
Snapfish英国:在线照片打印和个性化照片礼品
2017/01/13 全球购物
美国女士泳装店:Swimsuits For All
2017/03/02 全球购物
this关键字的作用
2016/01/30 面试题
思想政治教育专业个人求职信范文
2013/12/20 职场文书
《金色的脚印》教后反思
2014/04/23 职场文书
老公写给老婆的检讨书
2015/05/06 职场文书
幼儿园教师读书笔记
2015/06/29 职场文书
2019年“我为祖国点赞”演讲稿(3篇)
2019/09/26 职场文书
正确的理解和使用Django信号(Signals)
2021/04/14 Python
mysql timestamp比较查询遇到的坑及解决
2021/11/27 MySQL
《LOL》“克隆大作战”久违归来 幻灵战队皮肤上线
2022/04/03 其他游戏
ubuntu端向日葵键盘输入卡顿问题及解决
2022/12/24 Servers