11 文件 + 异常 + 序列化和反序列化

132 阅读2分钟

文件的打开与关闭

打开 : 用 open('文件路径','模式') ,若文件存在则打开,若文件不存在则创建

模式 :  w  :可写
        r  : 可读
  
 
关闭 : 用close

创建文件

image.png

image.png

打开文件

image.png

image.png

文件路径

可以写 绝对路径 也可以写相对路径

image.png

image.png

文件关闭 close

image.png

文件的读写

打开就要关闭 !!

image.png

写 write 模式 w

image.png

image.png

注意 这里若文件存在,那么就会清空原来的数据,然后再写入

追加 write 模式 a

image.png

image.png

读数据 read 模式 r

一字节一字节读取,效率低

image.png

image.png

读数据 readline 模式 r

一行一行读取,但只能读取第一行

image.png

image.png

读数据 readlines 模式r

它可以按照行来读取,但是会将所以数据都读取到 并且以一个列表的形式进行返回

image.png

image.png

序列化和反序列化

注意 : 字符可以写到本地文件,但对象(字典,列表,元组等) 不能写到本地文件。

序列化 : 设计一套协议,按照某种规则,把内存中的数据转换为字节序列,保存到文件

对象 ==> 字节序列    序列化

反序列化 : 从文件的字节序列恢复到内存中

字节序列 ==> 对象   反序列化

序列化

dumps

image.png

image.png

image.png

dump

import json 
json.dump(要插入的对象,要插入的位置)

image.png

image.png

dump 和dumps的区别

dumps 需要把 先把一个对象给一个变量,然后再利用json.dumps 进行序列化

dump 直接 在json.dump 中写入要插入的对象 ,和要插入的位置

反序列化

loads

image.png

load

image.png

loads 和 load 的区别

loads 也是 需要先把文件中的数值进行读取出来,给一个变量,再把这个变量利用 json.loads 进行反序列化

load 不需要进行先读,直接再json.load 中写入要读取的位置,那么就直接可以把里面的数值读取出来了

异常

当你读一个不存在的文件时,就会报错,但是我们需要给客户看到 它出错了,就要写异常

image.png
try:
    可能出现的异常代码
except 异常类型:
    友好提示
image.png