day08/09


      • 字符编码
        • 什么是字符编码
          • 人类语言翻译为二进制,翻译的过程称之为字符编码
            • 保存不是目的,能取出来才是目的
            • 要想保存翻译分结果则保证采用相同的规范,也就是字符串
        • 乱码发生的两种情况
          • 1.存的时候使用的编码与取的时候的不同
          • 存的时候,出现了编码表中不存在的字符,例如既有英文,又有中文,但是采用了ascll来编码
        • 保证不乱码
          • 存取一致
          • 使用兼容万国的编码表
        • 解释器在读取文件后识别语法,当在定义字符串变量时又涉及到编码问题
          • py2中默认采用ascll,也可以使用coding来指定,但也有乱码的可能:当coding为gbk,而输出字符时采用utf-8
          • py3中默认采用unicode,并且coding也只能修改前两阶段解码过程,无法修改定义变量的编码
        • encode和decode
          • encode使用场景
            • 需要将文本写入到硬盘时
            • 需要将文本基于网络发送时
      • 文件处理
        • 文件是操作系统提供的一套虚拟接口,用于简化对硬盘的操作,一个文件就代表硬盘上的一段二进制数据,学习文件处理是为了将数据永久保存
        • 基本形式
          • 打开文件语法
            f = open(r"文件路径",mode="rt",encoding="utf-8")    f.read()    f..write()    f.close()
            • 语法2
              with open(r"文件路径",mode="rt",encoding="utf-8") as f:        pass
          • 打开文件的模式
            默认为t模式 即文本操作模式    r  == rt  只读文本    w  == wt  只写文本    a  == at  追加写文本
            • 无论是读还是写 都需要指定编码方式,如果不指定 windows默认为GBK linux默认UTF-8
            • 操作数据都是字符为单位
          • a 和 w 都是写入模式,如果文件不存在都会创建新文件
          • 不同的是 w会清空源文件  a不会情况且会将光标移动文件末尾
        • b模式
           b表示字节模式        与文本相同在于 都必须与r、w、a连用        rb 只读字节模式        wb 只写字节模式        ab 追加只写字节模式    b模式可以操作任意类型的文件
          • b模式可以操作任意类型的文件
          • 注意:
            • b模式不允许设置编码参数
            • 读写数据都以字节为单位
        • 可读可写
          + 表示可读可写模式   也不能单独使用   
        • r+  ==  r+t  直接写入 会把元数据覆盖掉   
        • w+  ==  w+t  打开就清空 所以读不到   
        • a+  ==  a+t  打开就移动光标到末尾 也读不到   
        • 可读可写字节模式   
        • r+b    直接写入 会把元数据覆盖掉   
        • w+b    打开就清空 所以读不到   
        • a+b    打开就移动光标到末尾 也读不到    仅仅是单位不同   
        • 每一个都有问题 所以可读可写并不常用

猜你喜欢

转载自www.cnblogs.com/fengchenglei/p/10239370.html