网站首页 > 技术文章 正文
文件和异常处理是 Python 编程中非常重要的概念。在本篇文章中,我们将详细讲解如何打开、读写和关闭文件,以及如何处理异常。
文件操作
在 Python 中,可以使用内置的 open() 函数打开文件。open() 函数需要两个参数:文件名和打开模式。打开模式可以是只读、写入、追加等。默认情况下,open() 函数以只读模式打开文件。
下面是一些常用的打开模式:
- 'r':只读模式(默认)。
- 'w':写入模式,覆盖原有内容。
- 'x':独占写入模式,如果文件已存在则打开失败。
- 'a':追加模式,在文件末尾添加新内容。
- 'b':二进制模式。
- 't':文本模式(默认)。
要打开一个文件,可以使用以下代码:
file = open('example.txt', 'r')
这将打开一个名为 example.txt 的文件,并将其赋值给变量 file。如果文件不存在,将会抛出一个 FileNotFoundError 异常。
要读取文件内容,可以使用以下代码:
content = file.read()
print(content)
这将读取文件的所有内容并将其打印到控制台。read() 方法也可以传递一个整数参数,指定要读取的字节数。例如,可以使用以下代码读取文件的前 100 个字节:
content = file.read(100)
print(content)
要写入文件,可以使用以下代码:
file = open('example.txt', 'w')
file.write('Hello, World!')
这将打开 example.txt 文件,并将字符串 'Hello, World!' 写入该文件。如果文件已经存在,则会覆盖原有内容。
在写入完成后,必须将文件关闭。可以使用以下代码关闭文件:
file.close()
异常处理
在 Python 中,异常是一种事件,该事件在程序执行期间发生,并且打破了程序的正常流程。Python 通过引发异常来处理错误。异常处理是一种使程序更健壮的技术。
可以使用 try-except 语句捕获异常。try 语句包含可能引发异常的代码,而 except 语句则指定在出现异常时应执行的代码。
下面是一个简单的例子,演示了如何使用 try-except 语句:
try:
x = 1 / 0
except ZeroDivisionError:
print('division by zero')
这将尝试将 1 除以 0,这显然是一个错误。由于除以零是一个 ZeroDivisionError 异常,因此 except 语句将捕获该异常并打印一条错误消息。
try-except 语句还可以包含多个 except 语句,以处理不同类型的异常。
try:
x = 1 / 0
except ZeroDivisionError:
print('division by zero')
except TypeError:
print('type error')
except Exception as e:
print('unknown error:', e)
在此示例中,try 语句尝试将 1 除以 0,这是一个 ZeroDivisionError。由于我们在 except 语句中指定了该异常类型,因此程序将执行第一个 except 语句。如果出现其他类型的异常,例如 TypeError,程序将执行第二个 except 语句。如果出现未知的异常,程序将执行最后一个 except 语句。
除了 try-except 语句之外,还有其他几种处理异常的方法。例如,可以使用 raise 语句手动引发异常:
x = -1
if x < 0:
raise Exception('x must be positive')
这将引发一个异常,其消息为 'x must be positive'。
还可以使用 finally 语句定义代码块,这些代码块将在 try-except 语句执行后始终运行:
try:
x = open('example.txt')
content = x.read()
except FileNotFoundError:
print('file not found')
finally:
x.close()
在此示例中,try 语句尝试打开 example.txt 文件并读取其内容。如果文件不存在,则 except 语句将打印一条错误消息。无论 try 语句是否引发异常,finally 语句都将关闭文件。这确保了程序始终在使用文件后正确地关闭它。
综上所述,文件和异常处理是 Python 编程中非常重要的概念。了解如何打开、读写和关闭文件以及如何处理异常,可以使程序更健壮,更可靠。
每天坚持学习一点点,不求有回报,只愿可以丰富自己!!!
猜你喜欢
- 2025-05-02 python执行.sql语法和文件(python oracle sql语句跟参数)
- 2025-05-02 python unittest 基本用法(python中testcase)
- 2025-05-02 免费定时运行Python程序并存储输出文档的服务推荐
- 2025-05-02 20 天学 Python 文件操作:Day 1 从 open() 开始
- 2025-05-02 一文掌握Python找到文件操作(python找到文件夹下指定文件)
- 2025-05-02 python 文件操作(python 文件操作模块)
- 2025-05-02 pdb,让python文件在linux中跑起来
- 2025-05-02 IDEA中配置Python环境并运行(idea 运行python)
- 2025-05-02 14《Python 办公自动化教程》os 模块操作文件与文件夹
- 2025-05-02 Python自动化办公自学笔记(八)文件操作
- 274℃Python短文,Python中的嵌套条件语句(六)
- 272℃python笔记:for循环嵌套。end=""的作用,图形打印
- 270℃PythonNet:实现Python与.Net代码相互调用!
- 265℃Python实现字符串小写转大写并写入文件
- 264℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 124℃原来2025是完美的平方年,一起探索六种平方的算吧
- 105℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 102℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
-
- Python错误:IndentationError (缩进错误)
- 字符串对齐的常用方法(对字符串的常用处理方法)
- Python轻松实现markdown转网页,完美支持mermaid图表、latex公式
- Python循环语句(python循环语句分为哪两种)
- 编程小白学做题:Python 的经典编程题及详解,附代码和注释(六)
- Python入门到脱坑经典案—数字金字塔
- Python输出语句print()(python语句print(type(1j))的输出结果)
- Python入门到脱坑经典案例—九九乘法表
- Python格式化:让数据输出更优雅(Python格式化输出代码)
- 一节课的时间快速掌握Python基础知识
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)