一 数据类型总结
数字
字符串
集合:无序,即无序存索引相关信息
元组:有序,需要存索引相关信息,不可变
列表:有序,需要存索引相关信息,可变,需要处理数据的增删改
字典:无序,需要存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++等编辑器)
方式二:将硬盘存放的该文件的内容一行一行地读入内存,修改完毕就写入新文件,最后用新文件覆盖源文件