#Python学习笔记(day7)——文件打开及异常处理

文件的打开及方法:

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语句。

感谢小甲鱼,两张图均来源于

http://bbs.fishc.org/forum.php?mod=viewthread&tid=45279&extra=page%3D1%26filter%3Dtypeid%26typeid%3D403

猜你喜欢

转载自blog.csdn.net/pioneer_AC/article/details/81197664