python的异常和文件

1. 异常简介

  • 程序在运⾏过程中不可避免出现⼀些错误。⽐如: 使⽤了不存在的索引,两个不同类型的数据相加…这些错误我们称之为异常。异常之后的代码都不会执行
  • 处理异常
    程序运⾏时出现异常,⽬的并不是把程序直接终⽌, Python是希望在出现异常时,我们可以编写代码,对异常进⾏处理

2. 异常的传播

  • 当在函数中出现异常时,如果在函数中对异常进⾏了处理,则异常不会在进行传播。
  • 如果在函数中没有对异常进⾏处理,则异常会继续向函数调用处传播。 如果函数调⽤处理了异常,则不再传播异常;
  • 如果没有处理,则异常继续向调用处传播。直到传递到全局作用域(主模块)。如果依然没有处理,则程序终⽌,并显示异常信息。
  • 当程序运行过程中出现异常以后,所有异常信息会保存到⼀个异常对象中。而异常传播时,实际上就是异常对象抛给了调⽤处

3. 异常对象

try语句:

    try:
      代码块(可能出现错误的语句)
 except 异常类型 as 别名:
      代码块(出现错误后的处理方式)
 except 异常类型 as 别名:
      代码块(出现错误后的处理方式)
      ...
   else:
      代码块(没有出错要执行的语句)
finally:
      代码块(有无异常 该代码块都会执行)
  • 如果在except后面不指定任何内容,它会捕获所有的异常
  • 如果在except后面指定一个异常类型,它就会捕获该类型的异常

4. 文件打开

  • ⽂件(file) 通过Python程序来对计算机中的各种⽂件进⾏增删改查的操作 文件也叫I/O (Input/Output)

  • ⽂件的操作步骤:

    打开⽂件
    对⽂件进⾏各种操作(读、写),然后保存
    关闭⽂件

  • open() 打开文件

  • 参数file,要打开的文件名字(路径)

  • ⽂件会有⼀个返回值。返回⼀个对象,这个对象就表示当前打开的⽂件

5. 关闭文件

  • 当我们获取了文件对象之后,所有的操作都是通过文件对象来操作的
  • read()函数来读取内容,它会将读取到的内容,保存到一个字符串当中
  • 调⽤close() ⽅法 来关闭⽂件
  • with…as 语句 不⽤写close()来关闭。它⾃带关闭

6. 读取文件

  • 通过read() 来读取⽂件的内容

  • 调⽤open() 来打开⼀个⽂件

  • 可以将⽂件分为2种类型:

    纯⽂本⽂件(使⽤utf-8编码编写的⽂件)

    ⼆进制⽂件(图⽚ mp3 视频…)

    open()打开⽂件时,默认是以⽂本⽂件的形式打开的 open()默认的编码为None。所以处理⽂本⽂件时,要指定编码

7. 较大文件的读取

  • 通过read()读取⽂件内容时,会将⽂件中所有的内容,全部读取出来。如果对于读取的文件比较大的话,会⼀次性的将⽂件加载到内容中,容易导致内存泄漏,所以对于较大的⽂件,不要直接调⽤read(),采用help() 来读取
  • read()可以接收⼀个size作为的参数。该参数⽤来指定要读取字符的数量。默认值为-1(-1也就是要读取全部的内容)
  • 可以为size指定一个值,这样read()会读取指定数量的字符
  • 每次读取都会从上次读取到的位置开始。如果字符的数量小于size,则会读取所有的;如果读取到最后的⽂件,则会返回空串
  • readline() 该⽅法⽤来读取⼀⾏
  • readlines() 该⽅法⽤于一行一行的读取内容,它会⼀次性将读取到的内容,封装到⼀个列表当中返回

8. 文件的写入

  • write() 向⽂件中写⼊内容
    该⽅法可以分多次向⽂件写⼊内容
    写入完成之后,该⽅法会返回写⼊的字符的个数

    如果操作文本文件,write()需要传递一个字符串

  • 使⽤open() 函数打开⽂件时,必须指定打开⽂件要做的操作(读、写、追 加)。如果不指定操作类型,则默认是读取⽂件,而读取⽂件是不能向⽂件中写⼊的
    r 表示只读
    w 表示可写。使⽤w写⼊⽂件时,如果⽂件不存在,则会创建⼀个文件;如果⽂件存在,则会覆盖原⽂件内容
    a 表示追加

9. 二进制文件写入

  • 读取⽂本⽂件时,size是以字符为单位。
  • 读取⼆进制⽂件时,size是以字节为单位
  • b 是二进制文件
  • wb 写入二进制文件
  • rb 读取
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值