zoukankan      html  css  js  c++  java
  • day006|python基础回顾6

    字符编码及文件处理

    """
    1、什么是字符编码?
        文字符号-----------编码----------->数字
        文字符号<----------解码------------数字
        字符编码表:
            一个字符对应一个数字
    2、为什么要研究字符编码?
        为了解决乱码问题:
            存取都用同一张字符编码表
    3、储备知识
        CPU 内存 硬盘
        三个步骤
    4、字符编码表的发展历程
        1、一家独大
            ASCⅡ:只能识别英文字符
                用8个bit对应一个英文字符
        2、天下大乱
            GBK:能识别中文和英文
                用16个bit(2Bytes)对应一个字符
            shift-JIS
            Euc-KR
        3、归于统一
            unicode:能识别万国字符
                常用的16bit(2Bytes)对应一个字符
    
        总结:
                英文字符------->内存(ASCⅡ格式的二进制数)---->硬盘(ASCⅡ格式的二进制数)
            中文、英文字符------->内存(GBK格式的二进制数)---->硬盘(GBK格式的二进制数)
            日文、英文字符--->内存(shift-JIS格式的二进制数)-->硬盘(shift-JIS格式的二进制数)
    
                万国字符----->内存(Unicode格式的二进制数)---->硬盘(utf-8格式的二进制数)
    5、运行python程序的三个阶段
        1、先启动一个python解释器
        2、python解释器会将文件内容从硬盘读入内存
        3、python解释器会解释执行刚刚读入内存的代码,识别语法
            x = "你好Hello"
    """
    
    # 字符-------->unicode格式的二进制(内存)---------------->utf-8格式的二进制(硬盘)
    #       编码                              编码
    # 字符<--------unicode格式的二进制(内存)<----------------utf-8格式的二进制(硬盘)
    #       解码                              解码
    
    # x = "上"
    # print(x)  # 打印unicode相当于打印字符
    #
    # utf8_res = x.encode("utf-8")
    # # print(utf8_res, type(utf8_res))  # b'xe4xb8x8a' <class 'bytes'>
    # unicode_res = utf8_res.decode("utf-8")
    # print(unicode_res)
    
    # 1、打开步骤
    # f = open("aaa.py", mode='rt',encoding='utf-8')
    # res = f.read()
    # print(res)
    # f.close()
    # # f.read
    
    # 上下文管理
    # with open("aaa.py", mode='rt',encoding='utf-8') as f:
    #     res = f.read()
    #     print(res)
    #     f.close()
    
    
    # 2 文件打开模式
    # Ⅰ 控制读写操作模式
    # r: 只读(默认)
    # w: 只写
    # a: 只追加写
    
    # Ⅱ 控制读写内容的模式
    # t: 读写都是文本格式,即读写都是用字符串(默认)
    # b: 读写都是bytes格式,bytes等同于二进制
    
    # 强调:如果是t模式,一定要记住加上encoding="编码格式"
    # 强调:如果是b模式,一定要记住不要加上encoding="编码格式"
    
    
    # r:在文件存在的时候,文件指针调到文件的开头,文件不存在直接报错
    # f = open("a.txt", mode="rt", encoding="utf-8")
    # res = f.read()
    # print(res)
    # f.close()
    
    # w:在文件存在的时候会清空文件,指针调到文件开头,文件不存在会创建空新文件
    # f = open("a.txt", mode="wt", encoding="utf-8")
    # f.write("你好
    666")
    # f.close()
    
    # a:在文件存在的时候不会清空文件,指针跳到文件末尾,文件不存在会创建空新文件
    # f = open("a.txt", mode="at", encoding="utf-8")
    # f.write("
    777")
    # f.close()
    
    # f = open("a.txt", mode="r+", encoding="utf-8")
    # f.write("554")
    # f.close()
    
    
    # rb wb ab
    # f = open("a.txt", mode="rb")
    # res = f.read()
    # print(res)
    # print(res.decode("utf-8"))
    # f.close()
    
    # f = open("a.txt", mode="wb")
    # f.write("你好".encode('utf-8'))
    # f.close()
    
    with open(r'H:BaiduNetdiskDownloadLinux阶段总结imgday004主板.png', mode='rb') as f1,
      open(r'C:Users曹嘉鑫Desktop1111.png', mode='wb') as f2:
        # res = f1.read()
        # f2.write(res)
        for line in f1:
            f2.write(line)
        f1.close()
        f2.close()
    
  • 相关阅读:
    Babelfish
    【动态规划】货币面值
    contest 1.18
    contest 1.17
    contest 1.16
    contest 1.15
    contest 1.14
    contest 1.13
    contest 12.31
    [cf]Round #529 (Div. 3)
  • 原文地址:https://www.cnblogs.com/caojiaxin/p/14032845.html
Copyright © 2011-2022 走看看