美文网首页
day10 字符编码 文件处理

day10 字符编码 文件处理

作者: 荭鲤鱼与緑鲤鱼与驴 | 来源:发表于2020-07-19 18:58 被阅读0次

Ⅰ  储备知识

程序运行与三大核心硬件的关系

cpu 内存 硬盘

文本编辑器读取文件内容的流程

python解释器运行的三个步骤

先启动python解释器

然后python解释器会把文件从硬盘拿到内存中,此时文件的代码没有语法意义

最后解释器会解释刚刚拿到的内存的内存,开始识别语法意义

前两步运用到字符编码器的运用,第三步取出来识别的时候也要用到字符编码器的,以保证识别变量语法的时候不是乱码

Ⅱ  字符编码的介绍

定义:

存:字符===>翻译===>二进制数字

取:字符<===翻译<===而仅是数字

两个过程是正好相反的

Ⅲ  字符编码表

就是一个人类认识的字符与计算机认识的二进制数字的一个对应关系

就是人类与计算机沟通的桥梁

Ⅳ  字符编码表发展史

唯我独尊

由于计算机起源于美国,所以美国佬就没考虑过别的国家还能用得起计算机,但是发明的编码表只有英文字母和英文符号:ASCII表

由于ASCII表只支持英文字符,所以就只使用了一个8位的二进制数对应一个字符

天下大乱

中国人看到美国人有电脑自己也想搞,于是就有了能支持中文和英文的GBK编码表

哎韩国棒子他也想用电脑,于是就有了Euc-Kr表

小日本说我也要用,于是也发明了一个ShidtjIs表

每个能用的起电脑的国家都有了自己的编码表....

这个情况就产生了问题,中国的软件只能在中国使用,每个国家的软件都只能自己国家使用

天下一统

鉴于天下大乱的情况,科学家们组织编写了一个万国码:unicode

unicode可以兼容万国字符,只需存的时候使用相对应的编码与字符

取出来的时候同理,由于软件是放于硬盘中,所以硬盘中的各种传统编码的软件,可以通过nuicode完成转换关系

utf-8 是unicode的升级版本,应为unicode中的英文字符也使用了2到3个byte位来存放,这样就造成了资源浪费

utf-8是针对nuicode的可变长度字符编码:一个英文字符占1个byte位,一个中文字符占3个byte位,生僻字用4个byte位来存储

Ⅴ  字符编码的使用方式

编码 encode

解码 deode

Ⅵ  结论

内存固定使用nuicode编码,我们无法改变,我们可以改变的是内存存如硬盘时采用的格式

Ⅶ  乱码问题

存入乱码

采用的编码表与字符不匹配,所以产生了乱码

解决方案:编码格式与文件中的字符应该相互对应,如果使用了不兼容的编码表进行编码存入,那么就会出现乱码且无法恢复

读取乱码

读取的时候使用的编码表同存入时的编码表不同,无法正确解释

解决方案:确认文件以什么编码格式存储,就应该使用什么编码取出,如果不确定,那么只能一个个的编码实验

python解释器默认编码

python2默认使用ASCII码

python3默认使用utf-8

保证程序运行前两个阶段不乱码的核心法则,在文件第一行进行表示使用哪种编码:# coding:unt-8 用来指定使用哪种编码

字符串类型乱码

python3中的str类型都默认是直接存成unicode编码格式

在字符串前加u可保证文件在python2中的str类型不乱码 x = u'上'

目的是位了将编码格式强制转换成unicode格式

Ⅷ  文件处理

什么是文件

文件是操作系统提供给用户\应用程序操作硬盘的一个虚拟单位

为何要用文件:存取硬盘必须使用文件

如何用文件: f = open(文件路径,打开模式) ; f.write(数据) ; f.close() 关闭文件

文件路径

绝对路径

windows系统

D:\puthon38\doc\python383\python.exe

C:\a\b\c\d.txt

linux系统

/a/b/c/d.txt

file = r'C:\a\b\c\new.txt'#win系统路径

file = r'/a/b/c/d.txt'#linux系统路径

相对路径

c\d.txt #相对于当前文件夹的路径

d.txt

相关文章

  • day10 字符编码 文件处理

    Ⅰ 储备知识 程序运行与三大核心硬件的关系 cpu 内存 硬盘 文本编辑器读取文件内容的流程 python解释器运...

  • Python基础之文件处理(二)

    Python基础文件处理 python系列文档都是基于python3 一、字符编码 在python2默认编码是AS...

  • Python-文件操作

    字符编码 文件操作 基础读 基础写 with语法 操作模式 游标操作 文件的遍历 字符编码: 三种字符串: 文件操...

  • 字符编码与python字符串

    python字符串与字符编码 字符编码 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。...

  • python 高级方法

    Python的字符串类型 字符编码方法 查看Python中的字符串编码名称,查看系统的编码 源文件字符集编码声明:...

  • Python正式课第十三天

    一、文件操作与字符编码 1. 字符编码 编码 将字符转换为对应的二进制序列的过程叫做字符编码(字符->二进制01)...

  • python 字符 编码 简述

    字符编码问题很简单,当你可以区分以下几种概念之后: 字节编码与字符编码 字节串与字符串 文件编码、IDE编码、其他...

  • python3 (1)基础语法

    1、编码 python3 源码文件默认UTF-8编码,字符串Unicode字符串。可以不在py文件制定编码,pyt...

  • 文本文件的编码格式

    文本文件存储的内容是基于 字符编码 的文件,常见的编码有 ASCII 编码,UNICODE 编码等 Python ...

  • [Maven]File encoding has not bee

    编译字符编码警告 问题 运行 mvn compile控制台输出 处理方法 在 pom.xml 文件中添加 prop...

网友评论

      本文标题:day10 字符编码 文件处理

      本文链接:https://www.haomeiwen.com/subject/xyerkktx.html