一.了解字符编码的知识储备

1.文本编辑器存取文件的原理(nodepad++,python,word)

  • 打开编辑器就打开了启动了一个进程,是在内存中的,所以,用编辑器编写的内容也都是存放于内存中的,断电后数据丢失
  • 要想永远保存,需要点击保存按钮:编辑器把内存的数据刷到硬盘上
  • 在我们编写一个py文件(没有执行),跟编写其他文件没有任何区别,都只是在编写一堆字符而已.

2.python解释器执行py文件的原理,(python,test.py)

  • 第一阶段: python解释器启动,此时就相当于启动了一个文本编辑器
  • 第二阶段:python解释器相当于文本编辑器,去打开test.py文件,从硬盘上将test.py的文件内容读入到内存中
  • 第三阶段:python解释器解释执行刚刚加载到内存中test.py的代码

3.过程:

  文本编辑器°一个文件的三个过程:

  • 先启动文本编辑器
  • 文件编辑器会将文件内容读入内存
  • 将读入内存的内容显示到屏幕上

  CPython解释器执行一个py文件的三个过程:

  • 先启动python解释器
  • python解释器会将py文件的内容当中普通的文本内容读入内存
  • 开始解释执行刚刚读入内存的代码,识别python语法

4.字符编码

  字符编码指的是字符转换成或者编码成数字

  编码的过程一定要遵循一个标准,该标准称之为字符编码表

  • ASCII表:只能识别英文字符,用8bit对应一个英文字符  (一个英文字符===>1Bytes)
  • GBK表:可以识别中文字符/英文字符,用8bit对应一个英文字符,用16bit对应一个中文字符(1个英文字符==>1Bytes/  1个中文字符==>2Bytes)
  • unicode(内存中默认使用该编码) :用2Bytes表示一个字符(特点: 1.可以识别万国字符    2.与各种字符编码的二进制数字都有对应关系)
  • utf-8全称Unicode Transformaation Format: (1个英文字符==>1Bytes        1个中文字符==>3Bytes)

结论:

1.编码与解码

  字符---------编码--------->>数字

  字符<<-------解码-----------数字

  unicode二进制---------编码-------->>utf-8二进制

  unicode二进制<<-------解码----------utf-8二进制

2.内存中固定使用unicode编码,我们可以改变的是数据由内存刷到硬盘时采用的编码    (应该采用utf-8)

  unicode的特点:

      1.可以识别万国字符

      2.与各种字符编码的二进制数字都有对应关系

3.解决乱码问题的核心

     1.字符当初以什么编码存的,就应该以什么编码去读

     2.保证运行python程序的前两个阶段不乱码的解决方案:添加文件头  (在文件首行添加  "#coding: 文件当初存的字符编码)

4.python解释器默认的编码

  python3:      utf-8

  python2:      ASCII

python字符编码和文件处理的更多相关文章

  1. Python 字符编码及其文件操作

    本章节内容导航: 1.字符编码:人识别的语言与机器机器识别的语言转化的媒介. 2.字符与字节:字符占多少个字节,字符串转化 3.文件操作:操作硬盘中的一块区域:读写操作 注:浅拷贝与深拷贝 用法: d ...

  2. python字符编码与文件打开

    一 字符编码 储备知识点: 1.计算机系统分为三层: 应用程序 操作系统 计算机硬件 2.运行Python程序的三个步骤 1.先启动python解释器 2.再将python文件当做普通的文本文件读入内 ...

  3. 06 Python字符编码与文件处理

    python垃圾回收机制: python中的垃圾回收机制是以引用计数为主,分代收集为辅,引用计数的缺陷是循环引用的问题,一个对象的引用数为0 ,那么这个对象就会被python虚拟机回收内存 字符编码 ...

  4. python字符编码与文件操作

    目录 字符编码 字符编码是什么 字符编码的发展史 字符编码实际应用 编码与解码 乱码问题 python解释器层面 文件操作 文件操作简介 文件的内置方法 文件的读写模式 文件的操作模式 作业 答案 第 ...

  5. python基础(三)----字符编码以及文件处理

      字符编码与文件处理 一.字符编码 由字符翻译成二进制数字的过程   字符--------(翻译过程)------->数字   这个过程实际就是一个字符如何对应一个特定数字的标准,这个标准称之 ...

  6. python基础知识5---数据类型、字符编码、文件处理

    阅读目录 一 引子 二 数字 三 字符串 四 列表 五 元组 六 字典 七 集合 八 数据类型总结 九 运算符 十 字符编码 十一 文件处理 十二 作业   一 引子 1 什么是数据? x=10,10 ...

  7. Python之字符编码与文件操作

    目录 字符编码 Python2和Python3中字符串类型的差别 文件操作 文件操作的方式 文件内光标的移动 文件修改 字符编码 什么是字符编码? ''' 字符编码就是制定的一个将人类的语言的字符与二 ...

  8. python字符编码-文件操作

    字符编码 字符编码历史及发展 为什么有字符编码 ''' 原因:人们想要将数据存入计算机 计算机的能存储的信息都是二进制的数据 内存是基于电工作的,而电信号只有高低频两种,就用01来表示高低电频,所以计 ...

  9. python文件操作:字符编码与文件处理

    一.字符编码 二.文件处理 一.字符编码 储备知识点: 1. 计算机系统分为三层: 应用程序 操作系统 计算机硬件 2. 运行python程序的三个步骤 1. 先启动python解释器 2. 再将py ...

随机推荐

  1. 51nod 1232 完美数

    题目思路:数位dp,若这个数能被每位的非0数整除,那么这个数一定可以被每一位数的lcm整除,lcm(1,2,3,4,5,6,7,8,9) = 2520,所以可以通过将这个数对2520取模来压缩空间,取 ...

  2. shell编程 之 引号、括号的用法总结

    1 单引号 a=1 b='a string' 单引号屏蔽各种特殊字符.echo ‘$a " % \n ' 只能得到 $a " % \n 单引号可以指明界限,防止由分隔符----空格 ...

  3. Tesseract识别图片提取文字&字库训练

    文中测试了3.0和4.0两个版本.发现3.0识别效率不准确,需要训练词库.4.0识别效率就比较高了,而且支持结果生成pdf.txt等格式.所以推荐使用4.0版本. 这个工具可以用在爬虫的时候获取验证码 ...

  4. tomat startup.bat 日志乱码问题解决

    1.修改conf 下的logging.properties java.util.logging.ConsoleHandle.encoding=GBK C:\Users\Administrator> ...

  5. BitmapImage处理网络图片,例如阿里云获取的图片。异步加载到需要显示的控件上。提升速度非常明显。

    想直接把网络图片赋给控件,又要下载又要缓存,速度非常慢.不流畅. 需要进行处理,异步加载会显著提升速度.方法如下: public static BitmapImage ByteArrayToBitma ...

  6. CF1139B Chocolates

    题目地址:CF1139B Chocolates 前一个必须要少于后一个,那么模拟+贪心即可 倒序模拟,每次在上次取的个数减一和这次可以取的最多数量之间取min 直到为0(注意不要减到负数) 再就是注意 ...

  7. java中equals,hashcode和==的区别

    https://www.cnblogs.com/kexianting/p/8508207.html

  8. dubbo源码分析9——ServiceBean的afterPropertiesSet方法分析

    ServiceBean的afterPropertiesSet方法是实现了InitializingBean,还是准备先做宏观分析,然后再做细致分析.下面先宏观分析:  public void after ...

  9. cisco和华为的设备如何设置命令不分页显示

    作者:邓聪聪 为了登陆设备查看信息没有分页,cisco和华为的设备上可以设置不分页显示 Cisco: > terminal length HUAWEI / H3C: > user-inte ...

  10. 洛谷 P4948 拉格朗日多项式插值(杜老师板子)

    https://www.luogu.org/problemnew/show/P4948 这篇博客主要目的是存一下的dls的神奇板子,本来应该是推公式或者二分做的 但是dls的插值板子直接写好了这个特殊 ...