加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

day006|python基础回顾6

发布时间:2020-12-20 09:47:01 所属栏目:Python 来源:网络整理
导读:字符编码及文件处理 """1、什么是字符编码? 文字符号-----------编码-----------数字 文字符号----------解码------------数字 字符编码表: 一个字符对应一个数字2、为什么要研究字符编码? 为了解决乱码问题: 存取都用同一张字符编码表3、储备知识 CPU 内

字符编码及文件处理

"""
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",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("你好n666")
# f.close()

# a:在文件存在的时候不会清空文件,指针跳到文件末尾,文件不存在会创建空新文件
# f = open("a.txt",mode="at",encoding="utf-8")
# f.write("n777")
# 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()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读