第10章 文件和异常

10.1 从文件中读取数据

1、读取整个文件

函数open()接受一个参数:要打开的文件的名称。在当前执行的文件所在的目录中查找指定的文件。函数open()返回一个表示文件的对象,并将这个对象存储在我们将在后面使用的变量里。

关键字with在不再需要访问文件后将其关闭。也可以调用open()和close()两个函数来打开和关闭文件,但如果close()函数没能正确执行,会导致文件一直打开着,可能会导致数据丢失或受损。

获取文件后,使用read()函数读取文件的全部内容,将其作为一个长字符串存储在变量中。末尾空行:read()到达文件末尾时返回一个空字符串,显示出来就是空行。如要删除末尾的空行,可在print语句中使用rstrip() ---- print(content.rstrip()).

2、文件路径

用相对路径调用未在Python同目录下的文件。或者采用绝对路径 ---- 实践证明,相对路径用../test_files/pi_digits.txt什么的。

3、逐行读取

使用for循环遍历调用的文件的变量。则逐行读取,此处不用使用read()函数了。

4、创建一个包含文件各行内容的列表

使用关键字with时,open()返回的文件对象只在with代码块内可用(即缩进之后的才能用)。如果在with代码块外访问文件的内容,可在with代码块内将歌行存储在一个列表里。并在with代码块外使用该列表。 ---- lines = file_object.readlines()

5、使用文件的内容

前述代码将文件内容存储在内存中,可直接使用。

读取文本文件时,Python将其中文本都解读为字符串。要用于数值使用,就必须使用函数int()转整型,float()浮点型。

6、包含一百万位的大型文件

7、圆周率值包含你的生日吗

10.2 写入文件

1、写入空文件

要将文本写入文件,在调用open()时需要提供另一个实参。第一个实参是文件名;第二个实参是指定打开文件模式:r-读取、w-写入、a-追加、r+-读写。如果省略了该实参就是只读魔模式打开。

如果写入饿文件不存在,函数open()将自动创建它。以w模式打开已存在文件,会清空该文件。

方法write()会将一个字符串写入文件。

注意:Python只能将字符串写入文本文件,如果是数值,需要用str()来变更类型。

2、写入多行

添加换行符 ---- \n

3、附加到文件

使用实参 a

10.3 异常

异常是使用try-except代码块处理的。try-except代码块让Python执行指定的操作,同时告诉Python发生异常时怎么办。使用了try-except代码块时,即便出现异常,程序也将继续运行:显示你编写的友好的错误消息,而不是令用户迷惑的traceback。

1、 处理ZeroDivisionError异常

2、使用try-except代码块

如果try-except代码块后面还有其他代码,程序将接着运行。

3、使用异常避免崩溃

4、else代码块

我们让Python尝试try代码块,这个代码块只包含可能导致错误的代码。依赖于try代码块成功执行的代码放在else代码块中,而excep代码块告诉Python出现相应异常时该怎么办。

注意:break只能在for循环或while循环中使用。

5、处理FileNotFoundError异常

6、分析文本

7、使用多个文件

8、失败时一生不吭

在except语句后面执行pass

pass语句还充当了占位符,它提醒你在程序的某个地方什么都没有做,并且以后也许需要在这里做什么。

9、决定报告哪些错误

10.4 存储数据

1、使用json.dump()和json.load()

函数json.dump()接受两个实参:要存储的数据,以及可用于存储数据的文件对象。

2、保存和读取用户生成的数据

json.load(file_name)

3、重构

用定义新函数来分解目标复杂的内容。

注意:要注意和重视json.dump()和json.load()的数据格式,调用的时候会有很多问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不贰笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值