文件
关于文件,需要了解关于文件操作权限的问题。
这里我们只关心文件的读写权限,也就是 ‘r’ 和 ‘w’。
首先,我们要做到如何创建一个新的文件,我们可以使用open()函数。

重要参数解释:
file:文件名
mode:打开文件的模式,如果需要创建一个新文件,该模式应该包含写的权限('w' , 'r+')。
encoding:文件编码。eg:encoding=“utf-8”
关于创建新文件的创建时使用的权限是‘w’,如果你要写入的文件不存在,将会创建一个新的文件,但是如果要写入的文件存在的话就会清空文件内容。如果不想失去文件内容可以使用‘r+’权限,也就是同时具有读写权限。
此时你已经能够创建一个新的文件了,是不是想在文件中写入一些需要存储的文本。关于写方法,Python提供了write() 和 writeline()两个方法,字面可见,write()方法值负责在文件中写入一段内容,不会换行,而writeline()则是在文件中同时写入多段文本,也不会换行。


假设现在你已经能够在文件中心写入内容了,有时候还需要读取文件中的内容。Python中读取文件的方法是read() 和 readline()还有readlines()。


可以看到read()方法是直接读取文件中的全部内容。

readline()方法每次读取文件中的一行数据。

这里发现的一个空行其实由一个空格形成的。只需要去除空格就可以了。

readlines()一次将文件中所有行都读取后存储在一个列表中。

没错,我没有将操作过后的文件关闭,这是因为可以这样:

使用with代码块后,python会在合适的时机将文件关闭,不需要用户手动操作。
如果我们没用使用with代码块而是手动对文件进行打开和关闭的话,如果时机不合适就会出现让Python不知所措的情况,这种情况我们称之为异常。
异常
Python 中的异常其实一种用来管理程序执行期间发生的错误的对象。每当程序中出现了Python无法理解的情况,Python就会创建一个异常对象。如果你没有对异常进行处理的话,程序就会停止,并显示一个traceback,其中包含了异常的相关信息。
下面是一个简单的异常信息:

异常是我们不想看到的,这就需要我们对异常进行合理的处理,这样,再次发生这样的情况,我们就有备无患了。
使用 try-except 代码块避免程序崩溃。

依赖于 try 代码块成功执行的代码都应放到 else 代码块:

try 语句还有另外一个可选的子句,它定义了无论在任何情况下都会执行的清理行为。无论 try 子句里面有没有发生异常,finally 子句都会执行。
如果一个异常在 try 子句里(或者在 except 和 else 子句里)被抛出,而又没有任何的 except 把它截住,那么这个异常会在 finally 子句执行后再次被抛出。

try-except-else 代码块的工作原理大致如下: Python 尝试执行 try 代码块中的代码;只有可能引发异常的代码才需要放在 try 语句中。有时候,有一些仅在 try 代码块成功执行时才需要运行的代码;这些代码应放在 else 代码块中。 except 代码块告诉 Python ,如果它尝试运行 try 代码块中的代码时引发了指定的异常,该怎么办。
自定义异常
你可以通过创建一个新的异常类来拥有自己的异常。异常类继承自 Exception 类,可以直接继承,或者间接继承。

这就是一个自定义的异常,使用起来和Python中预置的异常没有任何区别。
Then,that’s all,thank you。
网友评论