1.异常
- 1.1异常的概念
- 异常就是在程序运行过程中的一些错误。
- 程序运行过程中的异常并不是为了停止程序,而是让我们编写代码来处理这些异常,可以使得程序更加友好和稳定。
- 1.2异常的传播
- 在函数中出现异常时,如果在函数中进行了异常的处理,则异常不会进行传播,如果异常没有处理,那么它就会向函数调用处传播,如果函数调用处进行了异常处理,则异常不会再传播,如果没有则继续向上层调用处传播,以此类推,直到最后程序的全局作用域,如果还没处理,那就程序终止,并显示异常信息。
- 当异常出现后,所有的异常信息会保存再一个异常对象中,异常传播的过程,实际上是将异常对象抛给调用处。
- 1.3异常处理的语法
try : #可能出现异常的代码块
代码块
except 异常类型:#根据异常类型处理异常
代码块
except Exception as e:#处理所有异常,将异常信息存入变量e中
代码块
else: #没有异常时运行的代码
代码块
finally: #不管有无异常都运行的代码
代码块
def fn():
"""
演示异常处理
"""
lst = [3, 7, 9, 10]
try:
r = lst[5]/0
except IndexError:
print('索引值超出了范围!!!')
except Exception as e:
print(f'出错了!!!{type(e)}:{e}。')
else:
print(f'r的结果为{r}。')
finally:
print('程序结束!!!')
if __name__ == '__main__':
fn()
"""
运行结果:
索引值超出了范围!!!
程序结束!!!
"""
2.文件
- 2.1文件的基本概念
- 在这里文件就是指通过python程序对计算机各种文件进行增删改查的操作,也叫做I/O(Input/Output)。
- 文件的操作步骤:先打开文件,然后对文件进行各种操作,最后关闭文件。
- 文件会有一个返回值。返回值就是一个对象,这个对象就是指当前文件。
- 2.2打开文件
- open()函数,open(文件名或路径,打开方式,解码)。如果打开文件和你写的程序在同一文件夹下,直接使用文件名,如果不在请使用路径;打开方式默认'r'只读;'w'写,覆盖原来的内容,文件不存在就新建;'a'追加,在原文件后面追加内容,原文件不存在新建;其他方式copy一个表,总结下,'b'就是二进制,'+'就是可读可写,'r'指针在开头,'a'指针在结尾,'w'直接覆盖,'r'文件不存在报错,'w'、'a'文件不存在新建。解码默认为None,就是ASCII编码,一般用utf-8。
模式 |
描述 |
t |
文本模式 (默认)。 |
x |
写模式,新建一个文件,如果该文件已存在则会报错。 |
b |
二进制模式。 |
+ |
打开一个文件进行更新(可读可写)。 |
U |
通用换行模式(不推荐)。 |
r |
以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb |
以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
r+ |
打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ |
以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w |
打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb |
以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
w+ |
打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ |
以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a |
打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab |
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ |
打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ |
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
- 2.3 关闭文件
- 用close()方法关闭文件。一般在操作完文件后就要关闭文件。
- with-as语句,自带关闭功能
- 2.4 读取文件
- 通过read()方法来读取
- 读取两种文件格式:纯文本;二进制文件。
- read()方法有一个参数,默认为-1全部读取,设置整数,可以读取设置的字符数。
- readline()方法,主要用于一行一样读取文件;readlines()方法,把文件所有内容按行读取到一个列表中。
f = open('python.txt',encoding='utf-8')
print(f.read())
f.close()
file_name = 'python.txt'
try:
with open(file_name,'r+',encoding='utf-8') as f:
while True:
r = f.read(20)
if r == '':
break
print(r,end='')
except FileNotFoundError:
print(f'文件不存在,请检查路径下有{file_name}文件!!!')
- 2.5 写文件
- 用write()方法来写文件,可以多次使用,每次返回写入字符数量。
- 需要在open()时设置可写操作,加'+'、'w'、'a'、'x'。
- 2.6 二进制文件的读写
with open(file_name,'rb') as obj:
代码块