zoukankan      html  css  js  c++  java
  • python 零基础学习之路-03 数据类型、字符编码、文件处理

    一 数据类型总结

      数字
      字符串
      集合:无序,即无序存索引相关信息
      元组:有序,需要存索引相关信息,不可变
      列表:有序,需要存索引相关信息,可变,需要处理数据的增删改
      字典:无序,需要存key与value映射的相关信息,可变,需要处理数据的增删改

    二 字符编码

      1、应用程序任何操作硬件的请求都需要向操作系统发起系统调用,然后由操作系统去操作硬件。

      2、字符编码就是把字符翻译成一个特定数字的标准,这个标准称之为字符编码。

      3、一个python文件中的内容是由一堆字符组成的,存取均涉及到字符编码问题(python文件并未执行,前两个阶段均属于该范畴)

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

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

      6、把unicode(字符)转换成其他编码格式(bytes)的过程称为编码(encode),将其他编码格式转换为unicode称为翻译或解码(decode)。

    三 文件处理

      1、打开文件的过程分析:由应用程序向操作系统发起系统调用open(...),然后操作系统打开该文件,并返回一个文件句柄给应用程序,应用程序将文件句柄赋值给变量f。

      2、资源回收:打开一个文件包含两部分资源:操作系统级打开的文件+应用程序的变量。(f.close() #回收操作系统级打开的文件、del f #回收应用程序级的变量)

        推荐傻瓜式操作方式:使用with关键字来帮我们管理上下文,会自动回收资源。

      3、打开文件的常用模式:

          r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
          w,只写模式【不可读;不存在则创建;存在则清空内容】
          a, 之追加写模式【不可读;不存在则创建;存在则只追加内容】

        以上是打开文本文件的模式, 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码、图片文件的jgp格式、视频文件的avi格式)。分别为rb、wb、ab模式。

      4、换行符:所有平台统一用

      5、操作文件的方法:

          f.read() #读取所有内容,光标移动到文件末尾
          f.readline() #读取一行内容,光标移动到第二行首部
          f.readlines() #读取每一行内容,存放于列表中

          f.write('1111 222 ') #针对文本模式的写,需要自己写换行符
          f.write('1111 222 '.encode('utf-8')) #针对b模式的写,需要自己写换行符
          f.writelines(['333 ','444 ']) #文件模式
          f.writelines([bytes('333 ',encoding='utf-8'),'444 '.encode('utf-8')]) #b模式

          f.readable() #文件是否可读 f.writable() #文件是否可读
          f.closed #文件是否关闭
          f.encoding #如果文件打开模式为b,则没有该属性
          f.flush() #立刻将文件内容从内存刷到硬盘
          f.name  

      6、文件修改:

          方式一:将硬盘存放的该文件的内容全部加载到内存,在内存中是可以修改的,修改完毕后,再由内存覆盖到硬盘(word,vim,nodpad++等编辑器)

          方式二:将硬盘存放的该文件的内容一行一行地读入内存,修改完毕就写入新文件,最后用新文件覆盖源文件

  • 相关阅读:
    vscode常用快捷键及常用设置
    markdown语法笔记
    Recoil 了解一下
    url的组成
    webpack基础配置
    Unity3D 游戏引擎之详解游戏开发音频的播放
    未能加载文件或程序集“AspNetPager”或它的某一个依赖项。参数错误
    Windows* 8商店与桌面应用开发
    unity3d阶段性学习脚本代码(2个是摄像机跟随(2D游戏中的),1个是角色跳跃移动脚本)
    unity3d与web交互的方法
  • 原文地址:https://www.cnblogs.com/liuzeng/p/9062344.html
Copyright © 2011-2022 走看看