Python学习之路(10)文件和异常
在本章中,你将学习处理文件,让程序能够快速地分析大量的数据;你将学习错误处理,避免程序在面对意外情形时崩溃;你将学习异常 ,它们是Python创建的特殊对象,用于管理程序运行时出现的错误;你还将学习模块json,它让你能够保存用户数据,以免在程序停止运行后丢失。在本章学习的技能可提高程序的适用性、可用性和稳定性。
1.从文件中读取数据
要使用文本文件中的信息,首先需要将信息读取到内存中。为此,你可以一次性读取文件的全部内容,也可以以每次一行的方式逐步读取。
1 |
|
2. 写入文件
保存数据的最简单的方式之一是将其写入到文件中。通过将输出写入文 件,即便关闭包含程序输出的终端窗口,这些输出也依然存在:你可以在程序结束运行后查看这些输出,可与别人分享输出文件,还可编写程序来 将这些输出读取到内存中并进行处理。
2.1写入空文件
1 |
|
在这个示例中,调用open() 时提供了两个实参。第一个实参也是要打开的文件的名称;第二个实参(’w’ )告诉Python,我们要以写入模式打开这个文件。打开文件时,可指定读取模式 (’r’ )、写入模式 (’w’ )、附加模式 (’a’ )或让你能够读取和写入文件的模式(’r+’ )。如果你省略了模式实参,Python将以默认的只读模式打开文件。
如果你要写入的文件不存在,函数open() 将自动创建它。
以写入 (’w’ )模式打开文件时千万要小心,因为如果指定的文件已经存在, Python将会先清空该文件,再将指定内容写入文件。
2.2写入多行
1 |
|
2.3附加到文件
我们打开文件时指定了实参(’a’) ,以便将内容附加到文件末尾, 而不是覆盖文件原来的内容。
1 |
|
3.异常(Build-in Exception)
Python使用被称为异常 的特殊对象来管理程序执行期间发生的错误。每当 发生让Python不知所措的错误时,它都会创建一个异常对象。如果你编写 了处理该异常的代码,程序将继续运行;如果你未对异常进行处理,程序将停止,并显示一个traceback,其中包含有关异常的报告。仅在必要时处理异常。
异常是使用 try-except
代码块处理的。try-except
代码块让Python执 行指定的操作,同时告诉Python发生异常时怎么办。使用了try-except
代码块时,即便出现异常,程序也将继续运行:显示你编写的友好的错误 消息,而不是令用户迷惑的traceback。
3.1使用try-except代码块
处理ZeroDivisionError异常的try-except代码块类似于下面这样:
1 |
|
3.2使用else代码块
通过将可能引发错误的代码放在try-except
代码块中,可提高这个程序抵御错误的能力。这个示例还包含一个else
代码块;依赖于try
代码块成功执行的代码都应放到else代码块中。
1 |
|
3.3使用多个文件
下面我们统计多本书中的单词数。
1 |
|
4.存储数据
很多程序都要求用户输入某种信息,如让用户存储游戏首选项或提供要可 视化的数据。不管专注的是什么,程序都把用户提供的信息存储在列表和 字典等数据结构中。用户关闭程序时,你几乎总是要保存他们提供的信 息;一种简单的方式是使用模块json 来存储数据。
模块json 让你能够将简单的Python数据结构转储到文件中,并在程序再次 运行时加载该文件中的数据。你还可以使用json 在Python程序之间分享数 据。更重要的是,JSON数据格式并非Python专用的,这让你能够将以 JSON格式存储的数据与使用其他编程语言的人分享。这是一种轻便格式, 很有用,也易于学习。
4.1使用json.dump()和json.load()
函数json.dump()
接受两个实参:要存储的数据以及可用于存储数据的文件对象。
1 |
|
使用json.load()
将这个列表读取到内存中
1 |
|
4.2重构
你经常会遇到这样的情况:代码能够正确地运行,但可做进一步的改进——将代码划分为一系列完成具体工作的函数。这样的过程被称为重构。 重构让代码更清晰、更易于理解、更容易扩展。
- Title: Python学习之路(10)文件和异常
- Author: 茴香豆
- Created at : 2022-10-02 15:53:30
- Updated at : 2024-09-26 14:32:09
- Link: https://hxiangdou.github.io/2022/10/02/Python_10/
- License: This work is licensed under CC BY-NC-SA 4.0.