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异常处理总结
Aug 15 Python
深入解析Python中的集合类型操作符
Aug 19 Python
python中子类继承父类的__init__方法实例
Dec 15 Python
使用django-crontab实现定时任务的示例
Feb 26 Python
python中将一个全部为int的list 转化为str的list方法
Apr 09 Python
Python读取txt内容写入xls格式excel中的方法
Oct 11 Python
numpy向空的二维数组中添加元素的方法
Nov 01 Python
Python实现简单层次聚类算法以及可视化
Mar 18 Python
pyspark 随机森林的实现
Apr 24 Python
python中编写函数并调用的知识点总结
Jan 13 Python
python多线程方法详解
Jan 18 Python
Python docx库删除复制paragraph及行高设置图片插入示例
Jul 23 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
轻松入门: 煮好咖啡的七个诀窍
2021/03/03 冲泡冲煮
利用PHP实现一个简单的用户登记表示例
2017/04/25 PHP
php合并数组并保留键值的实现方法
2018/03/12 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
2019/10/17 PHP
javascript 操作Word和Excel的实现代码
2009/10/26 Javascript
JavaScript页面刷新与弹出窗口问题的解决方法
2010/03/02 Javascript
Javascript匿名函数的一种应用 代码封装
2010/06/27 Javascript
客户端 使用XML DOM加载json数据的方法
2010/09/28 Javascript
jQuery事件绑定和委托实例
2014/11/25 Javascript
jQuery插件Tmpl的简单使用方法
2015/04/27 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
2015/11/18 Javascript
javascript合并表格单元格实例代码
2016/01/03 Javascript
超实用的JavaScript表单代码段
2016/02/26 Javascript
NodeJS使用formidable实现文件上传
2016/10/27 NodeJs
JavaScript队列、优先队列与循环队列
2016/11/14 Javascript
JS实现的简单拖拽功能示例
2017/03/13 Javascript
微信小程序返回多级页面的实现方法
2017/10/27 Javascript
JavaScript中利用Array filter() 方法压缩稀疏数组
2018/02/24 Javascript
layui table数据修改的回显方法
2019/09/04 Javascript
原生js实现随机点餐效果
2019/12/10 Javascript
JS实现简单打字测试
2020/06/24 Javascript
使用pip发布Python程序的方法步骤
2018/10/11 Python
python实现websocket的客户端压力测试
2019/06/25 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
2019/12/12 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
Python换行与不换行的输出实例
2020/02/19 Python
如何在Anaconda中打开python自带idle
2020/09/21 Python
Python 多进程原理及实现
2020/12/21 Python
个人实习生的自我评价
2014/02/16 职场文书
《蚕姑娘》教学反思
2014/04/15 职场文书
医院院务公开实施方案
2014/05/03 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
政风行风整改方案
2014/10/25 职场文书
装配车间主任岗位职责
2015/04/08 职场文书
MySQL系列之十一 日志记录
2021/07/02 MySQL
MySQL数据库简介与基本操作
2022/05/30 MySQL