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、换行符:所有平台统一用\n

  5、操作文件的方法:

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

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

 

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

  6、文件修改:

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

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

 

posted @ 2018-05-20 03:04  afeng2017  阅读(100)  评论(0编辑  收藏  举报