目录
文件操作
打开文件
格式①:open(文件名,mode = ‘r’,encoding = None)
#将硬盘中的文件 加载到内存中
格式②:
with open(文件名,encoding = None as) as 变量:#变量就是文件对象
pass
①使用这种写法打开文件,会自动进行关闭,不用手动书写关闭的代码
②除了 with 的缩进之后,文件就会自动关闭
① r
:只读 read ,如果文件不存在,会报错
② w
:只写 write,如果文件存在,会覆盖文件
③ a
:追加 append,在文件的末尾写入新的内容
encoding 编码格式,指 二进制数据 和 汉字 转换的规则
①utf-8 :将一个汉字转换为 3 个字节的二进制
②gbk:将一个汉字转换为 2 个字节的二进制
关闭文件
格式:文件对象.close()
#关闭文件,如果是 写文件,会自动保存,即内存中的数据同步到硬盘中
读文件
格式:变量 = 文件对象.read()
返回值:返回读取到的文件内容,类型是字符串
按行读取文件
适合读取大文件
格式:文件对象.readline()
#一次读取一行的内容,返回读取到的内容。(如果读取多行,则按顺序进行读取)
read()
和readline()
:如果读取到文件末尾,返回的都是 空字符串
写文件
格式:文件对象.write()
参数:写入文件的内容,类型 字符串
返回值:写入文件中的字符串,字符串的长度一般不关注
JSON文件
JSON语法
json文件是一个 对象 或者 数组 ,对象和数组可以相互嵌套的
json中的对象是由键值对组成的,键 必须是 字符串类型
json中的数据直接使用逗号隔开,最后一个数据后边不能加逗号
json中的数据类型
①对象{ } 对应python的字典
②数组{ } 对应python的列表
③字符串,必须使用双引号
④数字类型 对应python的int、float
⑤bool类型(true、false) 对应python的ture、false
⑥空值 null对应python的None
读取JSON文件
①导包:import json
②使用:json.load(文件对象)
#得到的是 列表或者字段
保存JSON文件
①导包:import json
②使用:json.dump(文件对象)
写入JSON文件
将 python 中的 列表 或者 字典 转换为 json 文件
①导包:import json
②使用:json.dump(python 中的数据,文件对象)
异常处理
捕获异常的语法
格式:
try:
#可能发生异常的代码
pass
except: #捕获任意类型的异常
pass
捕获指定类型的异常
发生的异常可能存在多种,针对不同类型的异常,解决处理的方案不一样
格式:
try:
#可能发生异常的代码
pass
except 异常类型1: #捕获任意类型的异常
#发生异常类型1,执行的代码
pass
except 异常类型2:
#发生异常类型2
pass
捕获未知类型的异常
格式:
try:
#可能发生异常的代码
pass
except Exception as 变量: #Exception 常见异常类的父类,变量 异常对象,print()可以打印异常信息
#发生异常类型1,执行的代码
pass
except 异常类型2:
#发生异常类型2
pass
异常捕获的完整结构
格式:
try:
#可能发生异常的代码
pass
except 异常类型1: #捕获任意类型的异常
#发生异常类型1,执行的代码
pass
except 异常类型2:
#发生异常类型2
pass
except Exception as e:
#发生了其他类型的异常执行的代码
else:
#没有发生异常,会执行的代码
finally:
#不管是否发生异常,都会执行的代码
异常传递
异常传递是 python 中已经实现好的功能,不需要我们写代码实现
异常传递是指在函数的嵌套调用过程中,如果发生了异常,没有进行捕获,会将这个异常传递到函数调用的地方,直到捕获到为止,如果一直没有捕获,才会进行报错,终止执行
抛出异常
在执行代码的过程中,之所以会发生异常,终止代码执行,是因为 代码执行 遇到了 raise 关键字
raise 关键字的作用,就是来抛出异常,让代码终止执行
应用场景: 自己书写代码模块,让别人使用,为了让别人按照你规定的使用你的代码,你就可以在不满足你的条件情况下,使用 raise
抛出异常