zoukankan      html  css  js  c++  java
  • python全栈开发_day7_字符编码,以及文件的基本读取

    一:字符编码

      1)什么是字符编码

        将人能识别的字符等高级标识符与计算机所能识别的二进制01进行转化,这之间的交流需要一个媒介,进行两种标识符之间的转化。

        字节的存储方式为八个二进制位

      2)乱码

        存放数据与读取数据采用的字符编码表不一致。

      3)软件的运行

        1.打开软件。

        2.往计算机发送一个打开文件的指令,来打开文件,发送到内存。

        3.读取文件数据渲染给用户(python中第三步中逐行解释打开的文件内容,存取编码不一致则无法正常解释,程序崩溃),将执行的结果展示给用户。

      4)python代码中的文件头

        必须有的格式为encoding:编码表名称

        例:encoding:utf-8

      5)万国字符可以和01识别符对应的编码表

        制造一个可以识别万国字符的编码表——unicode编码表

        py2中,默认编码表为:ASCII,没有采用万国编码表unicode

        py3中,默认编码表为:utf-8,采用了玩过编码表unicode

      

      6)unicode和utf-8的关系

        unicode和utf-8的体现方式不同,采用的都是同一张unicode编码表

        unicode:用两个字节存储汉字,用两个字节存储英文字母,缺点是当文件内容较多时,占用的存储空间更大,优点是读取效率极高。

        utf-8:用三到六个字节存储汉字,用两个字节存储英文字母,缺点是读取效率低,优点是当文件内容较多时,占用的存储空间小。

        存储数据通常用utf-8,传输用utf-8(占用存储空间小,传输效率高),内存中转化为unicode(读取效率极高),再通过utf-8发送给CPU。

      7)三种字符串

        例:s1=u""  unicode字符串

          s2=b""  bytes字节字符串

          s3=r""  原意字符串

      8)编码与解码(重点)

        encode:将unicode字符串转化为bytes字符串

        decode:将bytes字符串转化为unicode字符串

    s="hello你好"
    n_s=bytes(s,encoding="utf-8")
    print(n_s)
    
    n_n_s=str(n_s,encoding="utf-8")
    print(n_n_s)
    
    #两次返回的结果分别为:b'helloxe4xbdxa0xe5xa5xbd'
                                   hello你好

    二:文件的基本读取操作

      主操作:r(读取)    w(写入)    a(追加)

      从操作:b(按字节操作)    t(按字符操作)    +(可读可写)

      了解操作:  x(异常写)    u(被遗弃了)

      经过的三个过程:打开→操作→关闭(文件)

     

      1)文件的写入

        

    obj=open("b.txt","w",encoding="utf-8")
    info="hello"
    obj.write(info)
    obj.close()
    #当路径中没有该文件时候,会自动创建一个文件
    #写入完成后一定要关闭文件打开,释放操作系统对文件的持有

      2)文件的读出

    obj=open("b.txt","r",encoding="utf-8")
    info=obj.read()
    print(info)
    obj.close

    #返回值:hello'
    #读取完成后一定要关闭文件打开,释放操作系统对文件的持有
  • 相关阅读:
    10 vue中 v-model ,计算机demo
    linear-gradient
    flexible.js
    九宫格抽奖原理
    js匿名函数与闭包作用
    HTML5实现九宫格布局
    scrollLeft/scrollTop/scrollHeight
    通过media媒体查询设置ie7/8样式、使用media判断各机型、手淘flexible.js
    右击事件oncontentmenu
    js/jquery判断一个对象是否为空
  • 原文地址:https://www.cnblogs.com/xuxingping/p/10600133.html
Copyright © 2011-2022 走看看