python中decode函数在哪个库_python encode和decode函数说明
字符串编码常用类型:utf-8,gb2312,cp936,gbk等。
Python中,我们使用decode()和encode()来进行解码和编码
在python中,使用unicode类型作为编码的基础类型。即
decode encode
str ---------> unicode --------->str
u = u'中文' #显示指定unicode类型对象u
str = u.encode('gb2312') #以gb2312编码对unicode对像进行编码
str1 = u.encode('gbk') #以gbk编码对unicode对像进行编码
str2 = u.encode('utf-8') #以utf-8编码对unicode对像进行编码
u1 = str.decode('gb2312')#以gb2312编码对字符串str进行解码,以获取unicode
u2 = str.decode('utf-8')#如果以utf-8的编码对str进行解码得到的结果,将无法还原原来的unicode类型
如上面代码,str\str1\str2均为字符串类型(str),给字符串操作带来较大的复杂性。
好消息来了,对,那就是python3,在新版本的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
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()
知识点
python中decode函数在哪个库_python encode和decode函数说明相关推荐
- python中读写excel的扩展库_Python读写Excel文件第三方库汇总,你想要的都在这儿!...
常见库简介 xlrd xlrd是一个从Excel文件读取数据和格式化信息的库,支持.xls以及.xlsx文件. http://xlrd.readthedocs.io/en/latest/ 1.xlrd ...
- jieba是python中一个重要的标准函数库_python——Jieba库整理(基础知识+实例)
先上目录,1.Jieba库是什么 2.Jieba库的使用(常见方法及函数) 3.实例--英文文本解析和中文文本解析 1.Jieba库是什么 Jieba库是优秀的中文分词第三方库,中文文本需要通过分词获 ...
- 如何在python中一次性输入多个参数_python如何利用input函数输入多个参数?
如果考虑这样的应用: 程序需要多个参数,并且希望每输入一个参数就进行换行,即希望一次输入多个参数. 关于这样问题网络上有一些帖子,但是总是没有讲到要点,这里解析如下. 关键知识点: 1.input函数 ...
- python中input同时输入多个_python如何利用input函数输入多个参数?
如果考虑这样的应用: 程序需要多个参数,并且希望每输入一个参数就进行换行,即希望一次输入多个参数. 关于这样问题网络上有一些帖子,但是总是没有讲到要点,这里解析如下. 关键知识点: 1.input函数 ...
- 小结两种在Python中导入C语言扩展库的方法
小结两种在Python中导入C语言扩展库的方法 分类: Pythoner2009-08-18 20:44 2563人阅读 评论(1) 收藏 举报 python扩展c语言importstring 一种是 ...
- 捋一捋Python中的数学运算math库(上篇)
正式的Python专栏第18篇,同学站住,别错过这个从0开始的文章! 很多学习编程的都多多少少学习了一些数学知识. 学委之前也简单吐槽了 Python中奇葩的round函数! 这篇我们讲讲那些常用的数 ...
- python中类方法与实例方法的区别-Python中的对象,方法,类,实例,函数用法分析...
本文实例分析了Python中的对象,方法,类,实例,函数用法.分享给大家供大家参考.具体分析如下: Python是一个完全面向对象的语言.不仅实例是对象,类,函数,方法也都是对象. class Foo ...
- Python中出现 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 12-13
Python中出现 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 12-13: t ...
- Python中TKinter的输入框如何绑定回车键事件调用功能函数
Python中TKinter的输入框如何绑定回车键事件调用功能函数 TKinter中的Entry输入框,与普通的按钮类型有所不同,没有command的属性来直接调用一个函数功能,所以,如果要通过键盘按 ...
最新文章
- 干货讲解 | OKT507-C开发板基于Linux系统的应用笔记
- 第四次产业革命将由四个领域引领:大数据、新材料、新能源和生物科技。
- CSS绘制放大缩小关闭按钮
- jax-rs jax-ws_通过JAX-WS Provider在Web服务中利用MOXy
- sql 中 ALTER 和 UPDATE 的区别
- Android-opencv之CVCamera (转载)
- CSS2.0样式手册_说明_SDK下载chm
- miui tv android,MIUI for TV 3.0上线 应用远程安装 手机反控电视
- Qt结合FFmpeg解码本地视频生成.h264文件和.yuv文件
- matlab做信号完整性,关于Matlab的Turbo码仿真研究
- idea中的万能快捷键(alt + enter)
- 离开学校后如何下载知网论文或外文论文
- 故障树分析法MATLAB,故障树分析(FTA)方法及其基于VC的软件设计的研究
- c语言unit id是什么,小程序再升级之什么是UnitionID
- 腾讯撕开中国NFT的“遮羞布”
- CentOS 7 安装rar解压rar
- 运维工程师主要做什么_弱电工程IT运维工作到底是做什么的?
- 如何深入和高效的学习编程语言
- 12.22 @烤仔建工 | 烤仔家具城建设中……
- 解压chm后由hhc生成html索引页面
热门文章
- 架构实战:(一)Redis采用主从架构的原因
- 使用jquery时一些小技巧的总结
- itext jsp页面打印
- svn在linux下的使用(svn命令行)ubuntu 删除 新增 添加 提交 状态查询 恢复
- C# 线程手册 第三章 使用线程 Monitor.TryEnter()
- [Leetcode][第309题][JAVA][最佳买卖股票时机含冷冻期][动态规划][压缩空间]
- micropython stm32f407 以太网_[MicroPython]STM32F407开发板DIY声光控开关
- 街上第一台电子计算机是,南京信息工程大学滨江学院2009级《计算机基础》(文科)a试卷(含答案)【最新】.doc...
- 小红书笔记_小红书的沙雕笔记,害人不浅啊
- python 对象_Python中的Barrier对象