.dat文件写入byte类型数组_教你学Python11-文件的异常处理

教你学习: Python-100-Days-11 文件与异常

本项目是参考项目内容,进行个人理解,和原有项目有出入,如想了解详情,请自行百度去搜索项目

文件的读取是我们平时经常遇到的事,我们打开电脑往txt里没写今天的日记,改天打开文件查看我们之前记录的,这个过程就是文件的读写操作。

  1. 提问我们文件的读写一种分几步:
  1. 我们打开txt,写入Hello World
  2. Hello Word(格式字符串,我们之前介绍过) 变成成为 Byte[](字节数组,字节可以理解为快递盒,不同大小的内容,放在不同大小的快递盒里)
  3. Byte[] 存入到 写入的 Buffer(缓冲器,可以理解为快递站),
  4. Buffer 将我们的快递,放到仓库(U盘,硬盘等)里。
  5. 读的buffer[]读取内容 ,我们另一个快递公司,把快递从仓库放到自己的快递站里。

6) 快递员在把包裹,发给我们,放到我们家里(显示器)

7) 显示器会根据我们包裹的种类,显示给我们看(文本,图片,视频,压缩包)

在Python中实现文件的读写操作其实非常简单,通过Python内置的open函数,我们可以指定文件名、操作模式、编码信息等来获得操作文件的对象,接下来就可以对文件进行读写操作了。这里所说的操作模式是指要打开什么样的文件(字符文件还是二进制文件)以及做什么样的操作(读、写还是追加),具体的如下表所示。

38ddb4bade38e50d84650970d7b12f58.png

2、常见文件格式的读写操作

读取文本文件时,需要在使用open函数时指定好带路径的文件名(可以使用相对路径或绝对路径)并将文件模式设置为'r'(如果不指定,默认值也是'r'),然后通过encoding参数指定编码(如果不指定,默认值是None,那么在读取文件时使用的是操作系统默认的编码),如果不能保证保存文件时使用的编码方式与encoding参数指定的编码方式是一致的,那么就可能因无法解码字符而导致读取失败。下面的例子演示了如何读取一个纯文本文件。读取文本文件时,需要在使用open函数时指定好带路径的文件名(可以使用相对路径或绝对路径)并将文件模式设置为'r'(如果不指定,默认值也是'r'),然后通过encoding参数指定编码(如果不指定,默认值是None,那么在读取文件时使用的是操作系统默认的编码),如果不能保证保存文件时使用的编码方式与encoding参数指定的编码方式是一致的,那么就可能因无法解码字符而导致读取失败。下面的例子演示了如何读取一个纯文本文件。

两种读取方式

read() 一次性去取全部内容

readlines() 一行一行读取

1)txt 读写内容

70b52aeb2ad2ab7483c095070568750d.png
784cb8ee7da6f949084c7771264404a0.png

Json 文件读写内容

1.JSON含义: JSON的全称是”JavaScript Object Notation”...

2.JSON定义: var json = { 键 : 值, 键 : 值, ..... } ...

3.JSON字符串和对象的区别: 字符串:指使用“”双引号或’’单引号包括的字符

097591d35d01d6450a7ca779faedf955.png
3922cd61dc41dfb3241afbde417428ec.png

CSV 文件读写内容

1726223465dcfa5363deffbab892653c.png
76b22c7194763d6f04a6e72af69920ca.png
8c0a77ada2562ae67838716405f7ac44.png

二级制文件的读取

8a4719b76d06869b1058fedb9634a3ae.png

3、序列号和反序列号

序列化(serialization)在计算机科学的数据处理中,是指将数据结构或对象状态转换为可以存储或传输的形式,这样在需要的时候能够恢复到原先的状态,而且通过序列化的数据重新获取字节时,可以利用这些字节来产生原始对象的副本(拷贝)。与这个过程相反的动作,即从一系列字节中提取数据结构的操作,就是反序列化(deserialization)”

我们的文件txt,csv,json,png,视频 这些都是我们常见的格式类型,计算机在传输的过程中,会将这些内容转换为二进制[byte] ,当我们需要读内容的时候,再讲byte转换成我们要的内容,在转换的过程中,需要告诉计算机这是什么格式的文件,所以就出现了序列化和反序列化,序列化转换为byte,反序列化byte转为对象

c53b7a4e9dcc901f19dae166855b04c1.png

4、异常(Exception)

我们的系统,在执行的过程中,会出现各种bug,其中bug的主要组成就是异常。

以我们现在学习的文件举例,细心的同学会发现,我们直接load文件,如果文件不存在我们是读取不到文件的,那么计算机在读取不到文件的时候,就会告诉我们,让我们知道,

这个方式就是Exception

为了保证我们计算机,出现问题后不会像法国大罢工一样,动不动不干活了,我们就需要安抚一下,我知道,我会解决的,你继续工作吧。我们就引入了异常处理机制,通过 try-->except --> finally 来处理

try:

执行的程序

出现问题,程序要罢工了

except 工资低:

老板说,知道了我给涨工资

except 加班狠:

老板说,知道了,一天工作5个小时

finally 干活去

e0f6f9bd40e285be562cd8045ab429b6.png
ad51e8370b51d8e9a3e6ad75343cbf45.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值