目录
十、生成器、迭代器(点击跳转)
十一、异常
在程序运行中,避免不了会出现错误(异常)
如果不处理函数中引发的异常,它将向上传播到调用函数的地方
如果在哪里也未得到处理,异常将继续传播,直至到达全局作用域
如果全局作用域中也没有异常处理的程序,程序将终止,之后的代码就不会执行了
1、异常处理
1.1、try 语句
语句1:
try # (可能出现错误的语句)
代码块
except: # (出现错误后执行的语句)
代码块
finally: # (无论是否出现错误都执行该语句)
代码块
else: # (没有出现错误执行的语句)
代码块
1.2、except 子句
except finally是 try的代码块出现异常后执行 except 的代码块
如果 except 后面异常类型则会捕获这类型异常错误
如果 except 后面没有异常类型则默认捕获所有异常错误
示例1:
try:
print(hello,world)
except:
print('程序出现错误')
>> 程序出现错误
示例2:
try:
print(helloworld)
except NameError as c:
print('程序出现错误,错误代码:',c)
>> 程序出现错误,错误代码: name 'helloworld' is not defined
1.2、finally 子句
finally 子句无论try的代码块是否出现错误都会执行 finally的代码块
示例1:
try:
print(helloworld)
finally:
print('try执行结束')
>> try执行结束
>> NameError: name 'helloworld' is not defined
示例2:
try:
print(helloworld)
finally:
print('try执行结束')
>> hello,world
>> try执行结束
1.3、else 子句
else子句是在 try 执行后没有错误再执行else的代码块
示例1:
try:
print('try开始执行')
except:
print('try出现错误')
else:
print('try执行结束')
>> try开始执行
>> try执行完毕
十二、文件
- 文件的路径
1、如果目标文件和当前文件在同一目录下,则直接使用同文件名
‘123.txt’
2、如果目标文件与当前文件不在同一目录下则需要路径 + 文件名
‘C:\Users\Desktop\123.txt’
1、文件的操作
1.1、打开文件
- open()
可以用 open() 来打开文件
示例1:
wj = open('123.txt')
print(wj)
>> <_io.TextIOWrapper name='123.txt' mode='r' encoding='cp936'>
这种方法打开的文件是需要关闭的
1.2、读取文件
- read()
read() 读取文件的内容,将读取到的内容作为字符串返回
示例1:# 假设123.txt内容为 hello world
wj = open('123.txt')
dq = wj.read()
print(dq)
>> hello world
1.3、关闭文件
- close()
文件读取完成后还需要关闭文件,否则文件会一直占用内存;
可以使用 close( ) 来关闭文件
示例1:# 假设123.txt内容为 hello world
try:
wj = open('123.txt')
dq = wj.read()
print(dq)
dq = None
wj.close()
print(dq)
dq = wj.read()
print(dq)
except Exception as e:
print('出现了错误代码:',e)
else:
print('程序正常')
>> hello world
>> None
>> 出现了错误代码: I/O operation on closed file.
关闭后的文件就无法在进行操作了
还有一种另一种打开方法无需关闭
1.4、另一种打开文件方式
- with
with 语句打开的文件在执行完 with 代码块后会自动关闭文件
示例1:
try:
with open('123.txt') as wj:
print(wj.read())
print(wj.read())
except:
print('出现了错误')
else:
print('程序正常')
>> hello world
>> 出现了错误
1.5、较大文件的读写
- 文件读写
1、纯文本文件 utf -8等编码编写的文本就是文本文件
2、二进制文件(图片、音频、视频…)
- open()
open( ) 打开文件默认是以文本文件打开的,
如果要以二进制文件打开则需要在打开时候声明文件以UTF-8格式打开
在open() 打开时候把后面更改读写方式
符号 | 描述 |
---|---|
t | 文本模式 ( 默认打开方式 ) |
x | 写入模式,新建一个文件,如果文件存在则会报错。 |
b | 二进制模式 |
+ | 可读可写 |
r | 只读 |
rb | 二进制打开,只读 |
r+ | 读写 |
w | 写入 |
wb | 二进制打开,写入 |
w+ | 读写 |
a | 追加 |
ab | 二进制打开,追加 |
语法:
open(文件,encoding='utf-8')
- read( )
read默认是读取文件全部内容
read接受一个size作为参数,该参数用来指定读取字符的数量
每次读取的位置都是从上一次读取的位置接着读取
with open('123.txt',encoding='utf-8') as wj:
dq = wj.read(5)
print(dq)
print(len(dq))
>> hello
>> 5
- readline()
用来读取一行内容,会把内容放入表格返回
- write
文件写入
with open('123.txt','w',) as wj:
wj.write('hello Python')
with open('123.txt','r',) as wj:
print(wj.read())
>> hello Python