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中二维阵列的变换实例
Oct 09 Python
python根据出生日期返回年龄的方法
Mar 26 Python
Python的Bottle框架中获取制定cookie的教程
Apr 24 Python
python分批定量读取文件内容,输出到不同文件中的方法
Dec 08 Python
numpy下的flatten()函数用法详解
May 27 Python
django url到views参数传递的实例
Jul 19 Python
pytorch对梯度进行可视化进行梯度检查教程
Feb 04 Python
Python短信轰炸的代码
Mar 25 Python
Python如何使用vars返回对象的属性列表
Oct 17 Python
python drf各类组件的用法和作用
Jan 12 Python
如何用Python编写一个电子考勤系统
Feb 08 Python
Python实现归一化算法详情
Mar 18 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数组分页实现方法
2016/04/30 PHP
PHP单例模式应用示例【多次连接数据库只实例化一次】
2018/12/18 PHP
5 cool javascript apps
2007/03/24 Javascript
jquery简单瀑布流实现原理及ie8下测试代码
2013/01/23 Javascript
bootstrap data与jquery .data
2014/07/07 Javascript
Node.js的特点和应用场景介绍
2014/11/04 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
Position属性之relative用法
2015/12/14 Javascript
JS中如何比较两个Json对象是否相等实例代码
2016/07/13 Javascript
vue 的keep-alive缓存功能的实现
2018/03/22 Javascript
Vue下滚动到页面底部无限加载数据的示例代码
2018/04/22 Javascript
在vue中给列表中的奇数行添加class的实现方法
2018/09/05 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
vue基础之事件v-onclick="函数"用法示例
2019/03/11 Javascript
vue + axios get下载文件功能
2019/09/25 Javascript
[00:13]天涯墨客二技能展示
2018/08/25 DOTA
Python 查找字符在字符串中的位置实例
2018/05/02 Python
Django如何自定义分页
2018/09/25 Python
python GUI实现小球满屏乱跑效果
2019/05/09 Python
Python Django切换MySQL数据库实例详解
2019/07/16 Python
Python利用matplotlib绘制约数个数统计图示例
2019/11/26 Python
tensorflow生成多个tfrecord文件实例
2020/02/17 Python
python实现图书馆抢座(自动预约)功能的示例代码
2020/09/29 Python
中国领先的汽车保养服务平台:途虎养车
2019/10/18 全球购物
Hurley官方网站:扎根于海滩生活方式的全球青年文化品牌
2020/05/18 全球购物
Linux中如何用命令创建目录
2016/12/02 面试题
在浏览器端如何得到服务器端响应的XML数据
2012/11/24 面试题
班组长安全职责
2014/01/05 职场文书
公司成立感言
2014/01/11 职场文书
入党积极分子介绍信
2014/01/17 职场文书
名企HR怎样看待求职信
2014/02/23 职场文书
施工单位安全责任书
2014/07/24 职场文书
见习期个人总结
2015/03/05 职场文书
学校运动会开幕词
2016/03/03 职场文书
创业计划书之面包店
2019/09/17 职场文书
react 项目中引入图片的几种方式
2021/06/02 Javascript