异常、文件

异常的简介
  • 程序在运行过程中可能出现一些错误,比如使用不存在的索引,两个类型不同的数据相加……这些错误我们称之为异常
  • 处理异常,程序运行时出现异常,目的并不让我们的程序直接终止!python是希望出现异常我们编写代码对异常进行处理。
异常的传播
  • 当在函数中出现异常时,如果函数对异常进行处理了,那异常不会再传播。如果函数中没有对异常进行处理就会传递到函数的调用,函数调用对异常进行处理,停止传播。如果没有就一直传递到全局域主模块中,还是没有对异常进行处理,程序终止,输出异常信息。
  • 当程序出现异常之后,会把异常信息保存到一个异常对象中,在异常的传播中实际上是把异常对象传递给函数调用。
def fun1():
    print(a)

def fun2():
    fun1()

def fun3():
    fun2()

def fun4():
    fun3()

fun4()
异常对象
try:
	可能出现问题的代码
execpt 异常类型 as 别名:
	出现这种异常类型执行的代码
else:
	代码没有异常执行
finally:
	不管代码有没错都会执行的代码
文件的打开
  • 文件(file) 通过Python程序来对计算机中的各种文件进行增删改查的操作 文件也叫I/O(Input/Output)
  • 文件的操作步骤
    1、打开文件
    2、对文件进行读写操作
    3、关闭文件
  • 文件会有一个返回值,返回一个对象,该对象就是当前文件
a = open(r"文件路径", "rw")
a.read()
a.write("需要写的内容,必须是一个字符串")
a.close()
文件的关闭
  • 调用close()方法关闭文件
  • with……as……语句自带关闭,不用调用close()来进行关闭
文件的读取
读取文件
  • 通过read()读取文件内容
  • 调用open来打开文件,打开的文件可以分为两种类型
    1、 一种是纯文本(使用utf-8进行编写)
    2、一种是二进制文件(图片,MP3音频)
    3、open打开文件时默认打开文本文件,oepn的默认编码为none,所以处理文本文件要指定编码
较大文件的读取
  • 通过read()读取文件内容时会将文件中所有的内容全部读取出来。如果对于读取的文件比较大的话。会一次性的将文件加载到内容中。容易导致内存泄露。所以对于较大的文件。不要直接调用read()
  • read()可以接收一个size作为的参数。该参数用来指定要读取字符的数量。默认值为-1.-1也就是要读取全部的内容
  • 每次读取都会从上次读取到的位置开始。如果字符的数量小于size。则会读取所有的。如果读取到最后的文件。则会返回空串
  • readline() 该方法用来读取一行
  • readlines() 该方法用于一行一行的读取内容,它会一次性将读取到的内容封装到一个列表当中返回
# python操作数据是要通过操作这个数据变量才可以实现
# 文件路径一般使用绝对路径
# 编码一般设置为utf-8

with open("文件路径", encoding="utf-8") as f:
    f.read()  # read()方法可以传递参数,默认是全部读取
    f.readline()  # 读取一行
    f.readlines()  # 一行一行读取,最后把内容返回一个列表
文件的写入
  • write()来向文件中写入内容
  • 法可以分多次向文件写入内容
  • 完成之后该方法会返回写入的字符的个数
  • open()函数打开文件时,必须要指定打开文件要做的操作(读、写、追加)(r, w, a)如果不指定操作类型,则默认是读取文件,而读取文件是不能向文件中写入
  • r 表示只读
  • 表示可以写。使用w写入文件时,如果文件不存在则会创建一个文件。如果文件存在则会覆盖原文件内容
二进制文件读写操作
  • 读取文本文件时,size是以字符为单位。读取二进制文件时,size是以字节为单位
  • 我们用wb来写入二进制文件
file_name = "打开文件路径"

with open(file_name, "rb") as f:
    file_name2 = "写入文件路径"
    with open(file_name2, "wb") as f2:
        while True:
            a = f.read(1024*10)
            if not a:
                break
            f2.write(a)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值