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()参数填字节

  • 相关阅读:
    Windows 2003,XP安装Windows Phone 7 狼人:
    Android实例剖析笔记(六) 狼人:
    Android实例剖析笔记(一) 狼人:
    Android NDK带来什么 狼人:
    Windows Phone 7常用资源大集合 狼人:
    Android实例剖析笔记(七) 狼人:
    JDK环境变量配置
    jQuery去掉字符串起始和结尾的空格
    结构型设计模式
    主题:hibernate生成tree(基于注解方式)
  • 原文地址:https://www.cnblogs.com/shanjinghao/p/8645482.html
Copyright © 2011-2022 走看看