python3基础梳理10异常处理|文件读取|文件写入
发布日期:2021-05-08 13:19:04 浏览次数:20 分类:精选文章

本文共 2260 字,大约阅读时间需要 7 分钟。

异常处理

异常处理是程序中处理错误和异常的重要机制,可以帮助我们更好地管理代码中的错误情况,避免程序崩溃,提高代码的健壮性。Python中的异常处理包括try、except、else、finally这些关键字,它们各自有不同的作用和用途。

处理单个异常:try/except

try语句用于包围可能会抛出异常的代码块。当try中的代码抛出异常时,except语句可以捕获该异常并进行处理。例如,试图打开一个不存在的文件时,try里面的open函数会抛出FileNotFoundError异常,except可以捕获这个错误并做相应的处理。

try:    file = open('test', 'rb')except IOError as e:    print('An IOError occurred. {}'.format(e.args[-1]))

处理多个异常:多个except语句

如果你想处理多个异常类型,可以在except语句中列出多个异常类型。例如,以下代码可以捕获IOError和EOFError两种异常:

try:    file = open('test', 'rb')except (IOError, EOFError) as e:    print("An error occurred. {}".format(e.args[-1]))

处理所有异常:Exception

如果你想捕获所有可能的异常,可以使用Exception基类。以下代码可以捕获所有的异常类型:

try:    file = open('test', 'rb')except Exception as e:    print('All exceptions {}'.format(e.args))

脚本执行之后做清理工作:finally

finally语句用于在异常处理完成后执行一些代码,常用于在脚本执行之后做清理工作。例如,确保文件被正确关闭:

try:    file = open('test', 'rb')except IOError as e:    print('An IOError occurred. {}'.format(e.args[-1]))finally:    print("This would be printed whether or not an exception occurred!")

没有触发异常的时候执行一些任务:try/else

如果try语句块中的代码没有抛出异常,else语句会执行。例如,当代码没有抛出异常时,else中的代码会运行:

try:    print('I am sure no exception is going to occur!')except Exception:    print('exception')else:    print('This would only run if no exception occurs. And an error here would NOT be caught.')finally:    print('This would be printed in every case.')

主动触发某个异常类型:raise

raise语句可以用来主动触发某个异常类型。例如,以下代码可以主动触发IOError异常:

try:    raise IOError('一个主动触发的异常类型')except Exception as e:    print(e.args)

满足某个条件触发异常:assert

assert语句可以用来在某个条件不满足时触发异常。例如,以下代码会在bool判断为False时触发AssertionError异常:

try:    assert False, "前面bool判断为False是触发异常"except Exception as e:    print(e.args)

文件读写

Python中的文件读写是日常编程中常用的操作,掌握好open函数和读写模式可以让我们的代码更高效、更可靠。

python3中open函数

open函数是Python中用于打开文件的核心函数,其语法如下:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

mode参数指定打开模式,常用的模式包括:

  • 'r':读取模式(默认)
  • 'w':写入模式(覆盖已有内容)
  • 'x':排他性创建(如果文件不存在则创建,否则失败)
  • 'a':追加写入(如果文件已存在则在末尾追加)
  • 'b':二进制模式
  • 't':文本模式(默认)
  • '+':更新磁盘文件(读取并写入)

一次读取整个文件

以下代码可以读取文件的全部内容:

file = './test.txt'with open(file, encoding='gbk') as f:    contents = f.read()print(contents)

逐行读取文件

以下代码可以逐行读取文件内容:

file = './test.txt'with open(file) as f:    for line in f:        line = line.strip()        print(line)

上一篇:python3基础梳理11python中模块和包
下一篇:python3基础梳理09python面向对象

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月11日 14时46分30秒