zoukankan      html  css  js  c++  java
  • day7 字符编码,文件操作

    字符编码避免乱码的核心:怎么编码就怎么解码

    #字符--------(翻译过程)------->数字

      #这个过程实际就是一个字符如何对应一个特定数字的标准,这个标准称之为字符编码
    utf-8——Unicode(解码 decode)结果是str
    Unicode——utf-8(编码,encode)结果是bytes

    内存中统一采用unicode,浪费空间来换取可以转换成任意编码(不乱码),硬盘可以采用各种编码,如utf-8,保证存放于硬盘或者基于网络传输的数据量很小,提高传输效率与稳定性。

    1、在存入磁盘时,需要将unicode转成一种更为精准的格式,utf-8:全称Unicode Transformation Format,将数据量控制到最精简

    2、在读入内存时,需要将utf-8转成unicode
    所以我们需要明确:内存中用unicode是为了兼容万国软件,即便是硬盘中有各国编码编写的软件,unicode也有相对应的映射关系,但在现在的开发中,程序员普遍使用utf-8编码了,估计在将来的某一天等所有老的软件都淘汰掉了情况下,就可以变成:内存utf-8<->硬盘utf-8的形式了。

    #1、保证不乱吗的核心法则就是,字符按照什么标准而编码的,就要按照什么标准解码,此处的标准指的就是字符编码

    #2、在内存中写的所有字符,一视同仁,都是unicode编码,比如我们打开编辑器,输入一个“你”,我们并不能说“你”就是一个汉字,此时它仅仅只是一个符号,该符号可能很多国家都在使用,根据我们使用的输入法不同这个字的样式可能也不太一样。只有在我们往硬盘保存或者基于网络传输时,才能确定”你“到底是一个汉字,还是一个日本字,这就是unicode转换成其他编码格式的过程了

    阶段一:启动python解释器
    阶段二:python解释器此时就是一个文本编辑器,负责打开文件test.py,即从硬盘中读取test.py的内容到内存中
    阶段三:读取已经加载到内存的代码(unicode编码格式),然后执行,执行过程中可能会开辟新的内存空间,比如x="egon"

    py3里的字符串是以Unicode的形式存放的

    bytes的类型与用途
    存放到文件中,基于网络传输

    文件操作的类型
    r 只读 
    光标定在开头,打印后,在打印,没有内容输出
    文件不存在
    报错
    文件存在
    读取内容

    w 只写 
    光标定在开头
    文件不存在
    创建文件
    文件存在
    清空内容在写
    a 最加写
    无内容光标定在开头
    有内容光标定在文尾
    文件不存在
    创建文件
    文件存在
    接在内容尾继续添加

    read()读取内容

    readline()读取一行的内容

    readlines()读取每行内容,以列表的形式返回

    import sys

    sys

    sys.argv

    import os 

    os.rename 

    os.remove

    拷贝原理

    方式一

    在内存空间里修改好,然后写入到新文件

    占用两份内存空间

    方式二

    新建一个A文件写入到B文件

    同时占用了2个文件空间

    最后删除A,吧B改成A的名字

    seek()参数填字节

  • 相关阅读:
    函数
    python操作文件
    POJ-2689-Prime Distance(素数区间筛法)
    POJ-2891-Strange Way to Express Integers(线性同余方程组)
    POJ-2142-The Balance
    POJ-1061-青蛙的约会(扩展欧几里得)
    Educational Codeforces Round 75 (Rated for Div. 2) D. Salary Changing
    Educational Codeforces Round 75 (Rated for Div. 2) C. Minimize The Integer
    Educational Codeforces Round 75 (Rated for Div. 2) B. Binary Palindromes
    Educational Codeforces Round 75 (Rated for Div. 2) A. Broken Keyboard
  • 原文地址:https://www.cnblogs.com/shanjinghao/p/8645482.html
Copyright © 2011-2022 走看看