• 字符编码


     

      字符编码

      文件处理

    字符编码

      任何一个程序想要运行,必先要将程序从硬盘加载到内存中,然后CPU去内存里将指令取出执行,正在运行的应用程序产生的数据,必要先存在内存里

      字符编码只和文本文件有关,字符编码和视频、音频文件无关

      文本编辑器的输入和输出是两个过程

      输入的字符>>>>> (字符编码表)>>>>>二进制数字

    ASCII码表

      用八位二进制表是一个英文字符 

      0000 0000

      1111 1111

    GBK

      用2Bytes表示一个中文字符 依旧用1Bytes表示一个英文字符

      0000 0000 0000 0000

      1111 1111 1111 1111

    万国码Unicode

      统一用2Bytes表示所有字符

      缺点:1.浪费存储空间

        2.I/O次数增减,程序运行效率降低(致命)

      当内存中的Unicode编码格式数据存到硬盘的时候,会按照utf-8编码

      会将Unicode的英文字符由原来的2Bytes变成1Bytes

      会将Unicode的中文字符由原来的2Bytes变成3bytes

      现在的计算机基本上内存是Unicode,硬盘是utf-8

    (需要掌握的)

    Unicode的两个特点

      1.用户在输入时,无论什么字符都能兼容万国字符

      2.其他国家编码的数据又硬盘读到内存的时候Unicode与其他各个国家的编码都有对应关系

    (必须掌握的)

      数据由内存保存到硬盘

      1.内存中的Unicode格式二进制数>>>>>编码(encode)>>>>>utf-8格式的二进制数据

      硬盘中的数据由硬盘读到内存

      1.硬盘中的utf-8格式的二进制数据>>>>>解码(decode)>>>>>内存中的Unicode格式的二进制数据

      (******)

      人生真理:文本文件用什么编的就用什么解码

    Python2中py文件的读入解释器默认用ASCII码(因为当时Unicode还没有流行)

    Python3中py文件的读入解释器默认用utf-8

    文件头

    # coding:utf-8

      1.因为所有的编码都支持英文字符,所以文件头名才能够正常生效

      Python解释器开发软件,只要是中文,前面都需要加一个u,为的就是你不指定文件头时,能识别中文

      Python3中字符串默认就是Unicode编码格式的二进制数

    补充:
    1.pycharm终端用的是utf-8格式
    2.windows终端采用的是gbk
    八位二进制也叫8bit(******)
    8bit = 1Bytes
    1024Bytes = 1KB
    1024KB = 1MB
    1024MB = 1GB
    1024GB = 1TB
    1024TB = 1PB


    文件处理 
     什么是文件?
    操作系统提供给用户操作复杂硬件(硬盘)的简易的接口
      使用方法:f = open() f.read() f.close()
    # 通过python代码操作文件
    # r取消转义
    # f = open(r'D:Python项目day07a.txt',encoding='utf-8')  # 向操作系统发送请求  打开某个文件
    # # 应用程序要想操作计算机硬件 必须通过操作系统来简介的操作
    # print(f)  # f是文件对象
    # print(f.read())  # windows操作系统默认的编码是gbk
    # f.read()  # 向操作系统发请求 读取文件内容
    # f.close()  # 告诉操作系统 关闭打开的文件
    # print(f)
    # print(f.read())
    
    # 文件上下文操作
    with open(r'D:Python项目day07a.txt',encoding='utf-8') as f ,
            open(r'D:Python项目day07.txt',encoding='utf-8') as f1:  # f仅仅是一个变量名 你把它看成是一个遥控器
        print(f)
        print(f.read())
        print(f1)
        print(f1.read())


    
    
    
  • 相关阅读:
    Mybatis3.2和Spring3.x整合----Myb…
    Mybatis3.2和Spring3.x整合----Myb…
    支持向量分类方法
    KKT了解
    机器学习实战笔记 logistic回归
    朴素贝叶斯进行分类
    决策树算法实现
    KNN算法
    Spring AOP中增强知识
    Java动态代理知识
  • 原文地址:https://www.cnblogs.com/AbrahamChen/p/11139543.html
Copyright © 2020-2023  润新知