Day15-文件操作

Day15-文件操作

1.异常捕获

try:
    需要捕获异常的代码
except:
    捕获到异常后会执行的代码
finally:
    代码段

finally无论如何都会执行

2.数据持久化

    1. 数据持久化 - 将数据以文件的形式保存到磁盘中

      • 程序中的数据默认存储在运行内存中,保存在运行内存中的数据在程序结束后会被自动销毁,就会导致下一次运行程序的时候,无法使用上一次程序运行过程中产生的数据。
        如果希望这次运行程序还可以使用之前运行这个程序产生的数据,就必须将这个数据以文件的形式保存到硬盘中。
        (保存在硬盘中的数据,除非手动删除,或者磁盘损坏,数据会一直存在)。
    2. 数据持久化工具 - 文件

    常见的文件:数据库文件(.db、.sqlite等)、excel文件、csv文件、json文件、普通文本文件(.txt)

  • 文件操作流程

    • 打开文件

      open(file, mode=‘r’,*,encoding=None) - 以指定的方式打开指定文件,返回一个文件对象

      • file-------文件路径(文件在计算机中位置信息),分为绝对路径和相对路径两种

        1.绝对路径:文件在计算机中的全路径(注意,windows的绝对路径对应的字符串最前面加r)

        2.相对路径:使用相对路径的前提:需要打开的文件必须放在工程中

        1. 用.表示当前目录 (当前代码文件所在的文件夹)

          2.用…表示当前目录的上层目录

          注意:在相对路径的时候,如果路径是以’./‘,开头的’./'可以省略

      • mode -----文件打开方式(决定打开文件后是可以读还是可以写;决定操作文件内容的时候数据对应的类型)

        第一组值 - 决定打开后的读写方式

        ​ r - 以只读的方式打开文件;
        ​ w - 以只写的方式打开文件; 打开的时候会直接清空原文件内容
        ​ a - 以只写的方式打开文件; 打开的时候不会删除原文件内容

        第二组值 - 文件数据对应的类型

        ​ t - 数据对应的类型必须是字符串
        ​ b - 二进制类型的数据(bytes)
        ​ 所有的文本文件既可以使用t打开也可以使用b打开(一般使用t);
        ​ 二进制文件(图片、视频、音频、压缩包、pdf等)只能用b打开。

        给参数mode赋值的时候,必须在这两组数据中每一组选一个值,第二组值可以不选,不选默认是t,赋值的实际写法:r(rt、tr)、br、rb、w(wt、tw)、wb、bw、a(at、ta)、ab、ba

      • encoding-----------文本文件的编码或者解码方式

        注意:只有在以t方式打开文件的时候才能设置encoding
        常见的文本文件编码方式:utf-8、gbk (建议使用uft-8)
        使用原则:必须保证打开文件读数据的时候对应的编码方式和打开文件写入 数据的时候对应的编码方式一致。

    • 操作文件

      • 文件读操作

        文件对象.read() - 获取文件所有内容(从读写位置开始,读到文件结束; 读写位置默认在文件开头), 可以读任何文件
        文件对象.readline() - 读一行(从读写位置开始,读到一行),只能读文本文件
        文件对象.readlines() —将每一行按列表的方式读出(用推导式整理数据)

      • 文件写操作

        文件对象.write(数据)--------将数据写入指定的文件中

      • 关闭文件 - 文件操作完成后必须关闭文件

        手动关闭文件:文件对象.close()

        自动关闭文件:with open() as 文件对象:
        操作文件

3.数据持久化的方法

第1步:确定需要持久化的数据是什么?
第2步:创建用来保存数据的文件(清楚文件的名字和类型、文件的位置)
第3步:设置文件的初始内容 (看在这个程序一次都没有执行的时候,这个需要持久化的数据应该是多少)
第4步:做到在程序中需要这个数据(需要持久化的数据)的时候,从文件中读这个数据;
如果这个数据在程序中发生了改变,必须将最新的数据写入到文件中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值