python3.x Day3 文件编码
文件编码:
知识点不多,但及其重要,python2和python3处理机制还有不同点,需要注意。
首先:
编码、数据类型,完全不同的概念。
文件编码:可以遵循开发环境、可以自行设定。
变量值编码:python2、我不清楚,貌似可以设定吧sys.setdefaultcode()方法设定?
python3、变量值默认的编码就是unicode
简述一下,编码从utf-8到gbk过程:
utf-8 --> unicode --> gbk
gbk转为utf-8
gbk --> unicode --> utf-8
也就是说传说中的万国码,就是厉害。通过它可以转任何。
python2中:
#字符转编码: #python2 原编码(utf8) --> 目标编码(gbk),需要 str.decode("utf-8").encode("gbk"), #第一步的decode方法用于转码为unicode,参数为我当前是什么编码的(utf8), #第二步的encode方法用于从unicode到目标编码(gbk),参数为目标编码(gbk) #decode目标是unicode,encode源是unicode,不能跨过unicode直接用encode转为目标编码,这是字符转码的标准流程。import sys print(sys.getdefaultencoding()) #打印python环境的默认编码 s="你好" s_to_gbk=s.decode("utf-8").encode("gbk") #decode过程就变成unicode再encode到目标 print(s_to_gbk,type(s_to_gbk))
python3中:
存储为unicode编码,可以直接进行转码encode()方法,但是数据类型会被变为byte,不重要,编码反正转了。
可以通过decode()方法转为字符串,但此时仅改变了数据类型,编码没有发生变化,就是encode()时的编码。
编码、数据类型 完全不同的概念
#python3 过程一样,先到转到unicode,再到目标编码, #但是,python3,底层存储时的值就是unicode编码的,所以字符串变量不再提供decode方法 #由此,明确两个问题 #1、python3,直接str.encode("目标编码"),只是变成了byte数据类型,不过编码就是目标编码。 #2、python3,既然编码过程无变化,如果有需求, # str.encode("utf-8").decode("utf-8").encode("gbk") #这是为了明确转码过程,实际应用不大,因为unicode编码是万国码,需要对接本地码程序需求的话,直接转就行了 import sys print(sys.getdefaultencoding()) #打印python环境的默认编码 s="你哈" print(s.encode("gbk")) #unicode直接转gbk的输出结果 print(s.encode("utf-8")) #unicode直接转utf-8的输出结果(byte类型,编码正确) print(s.encode("utf-8").decode("utf-8").encode("gbk")) #unicode直接转utf-8,再转为unicode,再转为gbk,(还是byte类型,编码正确) # 经过完整流程后,与直接转gbk结果相同,这个就是为了证明流程、结果的正确 #python3中,只有encode()方法以后,数据类型都是byte,编码是指定编码,无参就是默认编码 可以再转回字符串的。。。 # decode()方法就行了,参数要根据实际参数传,不传可以,除非可以确定这个需要转回字符串的比byte类型的数据,就是默认编码,不然就异常。 s_to_gbk=s.encode("gbk").decode("gbk") #decode不写gbk,会报异常说,gbk不能转到响应目标编码, print(s_to_gbk,type(s_to_gbk)) #证明转回了字符串类型,并且是gbk编码的 #python3,在encode的时候除了转了编码,同时转了数据类型变为byte
转载于:https://www.cnblogs.com/hello-init/p/7730092.html
python3.x Day3 文件编码相关推荐
- python3默认的字符编码和文件编码_Python的字符编码之三个问题
看过很多关于Python字符编码的博客,或深或浅,总感觉有点云里雾里,今天这里我尝试用我的方式也来凑个热闹. 首先,我们要弄清楚几个问题,这个对我们后面的理解非常重要. 字节与字符 Python源代码 ...
- python3中默认的字符编码和文件编码_python3 unicod,utf-8,gbk的编码和解码中文显示问题...
目的: 清楚了解为什么在python3不同的编码,解码,windows,linux操作系统下,字符是否能够正确显示. 前提: 了解不同编码用不同的二级制编码和长度来表示字符. 在python3中,各种 ...
- python代码大全o-python文件编码及执行
兼容中文编码 由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码. 当Python解释器读取源代码时,为了让它按UTF-8编 ...
- python申明文件编码_Python源代码文件的文本编码
原博文 2012-07-22 01:46 − 源代码的编码问题对于任何语言的源文件都是存在的,只不过对于脚本语言,这个问题更突出一些. 有的人可能会说,既然源代码在文本编辑器中可以正常显示,说明编码没 ...
- python 文件编码的识别_【python】python编码方式,chardet编码识别库
环境: python3.6 需求: 针对于打开一个文件,可以读取到文本的编码方式,根据默认的文件编码方式来获取文件,就不会出现乱码. 针对这种需求,python中有这个方式可以很好的解决: 解决策略: ...
- Python3 对于中文文件的读写处理
字符串在Python内部的表示是Unicode编码,因此,在做编码转换时,通常需要以Unicode作为中间编码,即先将其他编码的字符串解码(decode)成Unicode,再从Unicode编码(en ...
- python2.x文件编码
#这几种文件编码的方式,python2都支持. #utf-8,utf8都行,大小写没关系. #一定要放在文件的开头的第一行或第二行 # encoding=utf8 # encoding=utf-8 # ...
- python文件编码及执行
兼容中文编码 由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码. 当Python解释器读取源代码时,为了让它按UTF-8编 ...
- python怎么读取csv文件-python3读取csv文件任意行列代码实例
这篇文章主要介绍了python3读取csv文件任意行列代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 读取每一行 reader = csv. ...
- 学习笔记整理——vim,vim文件编码,vim配置文件
1.vim 安装包 vim-enhanced 2. 移动到行首 shift 6,移动到行尾 shfit + 4. 3. 移动到某行,nG,1G 首行,G 行尾,10G 移动到第十行 4. nx 向后删 ...
最新文章
- MySQL 如何查找删除重复行?
- Vue--findIndex方法的使用原理
- 不吹不擂,一文揭秘鸿蒙操作系统
- 解决git提交问题error: The requested URL returned error: 403 Forbidden while accessing
- 51单片机并行I/O口工作原理
- java如何存储一个向量到一个矩阵的一个位置_SIMD数据并行(一)——向量体系结构...
- mysql linux root密码忘记了怎么办_linux下忘记mysql root密码解决办法
- matlab小游戏源代码下载,3个游戏代码和164个教学源码 - 源码下载|Windows编程|源代码 - 源码中国...
- 解决POI读取Excel内存溢出的问题
- python安装包后找不到指定模块
- video.h5.player.js视频播放器
- python 课程设计扫雷报告_《扫雷课程设计报告.doc
- 企业微信对接金蝶云星空单据模板-日常费用报销
- 爬虫项目实战1——爬取天善课程
- 【SAP】 SAP自定义权限对象
- 极路由4/b70刷华硕(padavan)教程
- View Programming Guide for IOS:Views笔记
- pacemaker+corosync的一些总结
- 计算机基础之计算机的发展历史
- 了解node.js模块化和npm包
热门文章
- html基础之select ,datalist与details的异同
- 李炎恢老师的php源码以及附带一个php手册
- 一、JDK下载安装、eclipse下载安装(带资源)
- 计算机组成原理——第七章
- Apache JMeter web 应用测试工具使用快速入门
- java socket 客户端接收_java socket,怎么把客户端接收到的用户名和密码发送给后台?...
- machine learning-mnist
- linux查看所有目录
- webpack打包vue项目IE报错,“对象不支持“use”属性或方法”
- Python-docx 读取word.docx内容