DAY7学习笔记

  字符编码

    什么是字符编码

      字符编码表:人类的字符相对应的数字,二进制。

      ASCII码:只能识别英文字符,1英文字符为1=8bit。(用8个二进制bit(比特位)位表示一个英文字符)

      GBK:只能识别汉字与英文,1汉字=16bit(Shift_JIS日本字符编码)(Euc_kr韩国字符编码)

      Unicode:能识别万国字符,1字符=16bit=2Bytes。

      utf-8:是Unicode的转换格式,1个英文字符=1Bytes 1汉字=3Bytes。

      重点理论:

        1.编码与解码:

          字符----编码---->unicode的二进制----编码---->GBK的二进制

          GBK的二进制----解码---->unicode的二进制----解码---->字符

        2.解决乱码问题的核心法则:

          字符用什么编码格式编码,就应该用什么编码格式进行解码。

        3.python解释器默认的字符编码:

          python2为ASCII,python3为UTF-8。(可以通过更改python解释器默认使用的字符编码,在文件首行利用“ #coding:文件所需字符编码 ”。)

          在python2中可以在字符串前加上u,来让其存成unicode,python3则默认为此。

      关于字符编码的操作:

        1.编写python文件,首行应添加文件头。

        2.用python2写程序,定义字符串时,应加前缀u。

        3.python3中的字符串都是unicode编码的,python3的字符串encode之后可以得到bytes类型。

    为何字符要编码

      人类与计算机打交道用的是人的字符,而计算机无法识别人的字符,只能识别二进制,所以必须将人类的字符编码编译成计算机能识别的二进制数。

    如何用字符编码

      编写时,首行输入文件头,输入输出时已UTF-8为编码类型。

  文件处理

    什么是文件处理

      文件是操作系统提供给用户/应用程序的一种虚拟单位,该虚拟单位直接映射的是硬盘空间。

    为何要处理文件

      用户/应用程序直接操作文件(读/写)就被系统转换成具体的硬盘操作,从而实现用户/应用程序将内存中的数据永久保存到磁盘中。

    如何用文件

      文件处理的三个步骤:

        文件对象(应用程序的内存资源)对应操作系统打开的文件(操作系统的内存资源)

        读取文件中的数据

        向操作系统发送信号,让操作系统关闭打开的文件,从未回收操作系统的资源。

      文件打开模式:r(默认的,只读文件,在文件不存在时则报错,如果文件存在则文件指针跳到文件的开头)、w、a

      操作文件内容的模式:t(默认的,操作文件内容都是以字符串为单位,会自动帮我们解码,必须指定encoding参数

                b(操作文件内容都是以Bytes(二进制)为单位,硬盘中存的时什么就取出什么,一定不能指定encoding参数)

                +

        总结:t模式只适用于文本文件,而b模式可以用于任意文件。

      with的使用:上下文管理(读写文件操作):with open(r'c.txt',mode='r',encoding='utf-8') as f,open(r'b.txt',mode='r',encoding='utf-8') as f1:

            循环读文件内容的方法:with open(r'c.txt',mode='rt',encoding='utf-8') as f:

                         for line in f:

                          print(line,end='')

原文地址:https://www.cnblogs.com/lipengjia/p/9675841.html