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的Flask框架中实现简单的登录功能的教程
Apr 20 Python
在主机商的共享服务器上部署Django站点的方法
Jul 22 Python
CentOS 6.5下安装Python 3.5.2(与Python2并存)
Jun 05 Python
Python基于tkinter模块实现的改名小工具示例
Jul 27 Python
Python Unittest自动化单元测试框架详解
Apr 04 Python
Python使用pydub库对mp3与wav格式进行互转的方法
Jan 10 Python
python 动态生成变量名以及动态获取变量的变量名方法
Jan 20 Python
Python查找最长不包含重复字符的子字符串算法示例
Feb 13 Python
Django中信号signals的简单使用方法
Jul 04 Python
python 如何将数据写入本地txt文本文件的实现方法
Sep 11 Python
python用pip install时安装失败的一系列问题及解决方法
Feb 24 Python
python如何安装下载后的模块
Jul 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
Protoss兵种介绍
2020/03/14 星际争霸
paypal即时到账php实现代码
2010/11/28 PHP
PHP校验ISBN码的函数代码
2011/01/17 PHP
php制作动态随机验证码
2015/02/12 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
PHP实现可自定义样式的分页类
2016/03/29 PHP
用脚本调用样式的几种方法
2006/12/09 Javascript
js CSS操作方法集合
2008/10/31 Javascript
表单切换,用回车键替换Tab健(不支持IE)
2011/07/20 Javascript
Js(JavaScript)中,弹出是或否的选择框示例(confirm用法的实例分析)
2013/07/09 Javascript
JavaScript window.location对象
2014/11/14 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
2016/08/01 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
2016/09/08 Javascript
JS实现JSON.stringify的实例代码讲解
2017/02/07 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
2017/07/05 Javascript
浅谈webpack 构建性能优化策略小结
2018/06/13 Javascript
JavaScript跳出循环的三种方法(break, return, continue)
2019/07/30 Javascript
python 将字符串转换成字典dict
2013/03/24 Python
零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版
2014/11/06 Python
Python第三方Window模块文件的几种安装方法
2018/11/22 Python
使用CSS3代码绘制可爱的Hello Kitty猫
2016/08/03 HTML / CSS
详解css3 object-fit属性
2018/07/27 HTML / CSS
利用HTML5+css3+jquery+weui实现仿微信聊天界面功能
2018/01/08 HTML / CSS
HTML5之SVG 2D入门5—颜色的表示及定义方式
2013/01/30 HTML / CSS
纽约家具、家居装饰和地毯店:ABC Carpet & Home
2017/06/21 全球购物
Lulu & Georgia官方网站:购买地毯、家具、抱枕、壁纸、床上用品等
2018/03/19 全球购物
英国在线汽车和面包车零件商店:Car Parts 4 Less
2018/08/15 全球购物
玉兰油美国官网:OLAY美国
2018/10/25 全球购物
学生实习推荐信范文
2013/11/26 职场文书
2014年三八妇女节活动总结
2014/03/01 职场文书
反腐倡廉警示教育活动总结
2014/05/05 职场文书
医院我们的节日活动实施方案
2014/08/22 职场文书
2014年幼儿园德育工作总结
2014/12/17 职场文书
大学生村官个人总结
2015/02/15 职场文书
Python中with上下文管理协议的作用及用法
2022/03/18 Python