文件的打开及方法:
1、关于文件的打开模式
其中要注意的是如果以二进制方式写入文件的话,格式为 open(filename, 'wb')
补充:方法readlines(),可以将文件对象迭代成一个正式的列表,列表中的每个元素是字符串格式
open打开的文件对象可以将其视为一个序列迭代,read()是对迭代对象字符串化的翻译过程。
个人理解:open()是计算机将一个文件导入内存的过程,计算机已经将该文件转化成迭代对象,但是无法对用户显示。而readilnes是计算机对该迭代对象的翻译过程,将计算机语言转化为可视化语言。read()是将该文件对象完全可视化可视化。
同时,对于open的对象可作为一个迭代对象iterable,直接用list生成或者for循环。
文件中的指针一开始位于文件开头,指针指向位置为read或者readline所打印的字符串位置
2、关于文件的外包存储(pickle模块)
将几乎任何对象转化成二进制存储。
dump(object, file)
dumps(object) -> string
load(file) -> object
loads(string) -> object
pickle模块的函数。load类似于read,是一个计算机翻译成可视化语言的过程。
3、文件的异常
常见的类型错误有
IndexError | 索引超出序列的范围 |
KeyError | 字典中查找一个不存在的关键字 |
NameError | 尝试访问一个不存在的变量 |
OSError | 操作系统产生的异常(例如打开一个不存在的文件) |
SyntaxError | Python的语法错误 |
TypeError | 不同类型间的无效操作(如 1 + '1') |
ValueError | 传入无效的参数(如 int('abc') ) |
ZeroDivisionError | 除数为零 |
4、文件异常的处理——try语句
try:后面跟检验的代码行
若为True,则不报错或执行else中的语句
若为False,则执行Exception中的语句。其中可以将Error储存到变量reason中,用一个print(str(reason))将其打印出来
无论为True或者False,都将会执行finally语句
5、补充while...else语句
当while循环break之后,将会执行else语句。