Python文件和异常处理小结

 更新时间:2025年03月05日 09:33:09   作者:Alfadi联盟 萧瑶  
本章详细介绍了Python中的文件操作和异常处理,包括文件的读取和写入、异常的捕获和处理,以及JSON数据的存储和重构代码的最佳实践,通过示例和解释,帮助读者掌握这些关键技能,感兴趣的朋友一起看看吧

文件和异常处理是Python编程中不可或缺的技能。本章将带你从基础到进阶,彻底掌握文件操作和异常处理的核心知识点,并通过通俗易懂的示例帮助所有人理解。

10.1 从文件中读取数据

10.1.1 读取整个文件

要读取文件内容,首先需要打开文件,使用 open() 函数并指定文件路径和模式(如 'r' 表示只读)。例如:

with open('pi_digits.txt', 'r') as file:
    contents = file.read()
print(contents)

使用 with 语句可以自动关闭文件,避免资源泄露。file.read() 会一次性读取文件全部内容。

10.1.2 文件路径

- 相对路径:相对于当前脚本的位置,如 data/pi.txt。

- 绝对路径:完整的系统路径,如 /home/user/documents/pi.txt。

在Windows中注意反斜杠转义(C:\\path\\to\\file)或使用原始字符串(r'C:\path\to\file'`。

10.1.4 逐行读取与列表存储

若想逐行处理文件内容,可以使用循环:

with open('pi_digits.txt') as file:
    lines = file.readlines()  # 将各行存入列表
for line in lines:
    print(line.strip())       # 去除每行末尾的换行符

10.1.6 处理百万行大文件

直接读取大文件可能导致内存不足。此时可逐行处理:

with open('big_file.txt') as file:
    for line in file:
        process(line)  # 每次处理一行,内存友好

10.2 写入文件

10.2.1 写入空文件

使用 'w' 模式打开文件,若文件不存在则会创建:

with open('output.txt', 'w') as file:
    file.write("Hello, World!")

⚠️ 注意:'w' 模式会覆盖原有内容!

10.2.3 追加内容

用 'a' 模式追加内容到文件末尾:

with open('output.txt', 'a') as file:
    file.write("\nAppended line.")

10.3 异常处理:让程序更健壮

10.3.1 处理 ZeroDivisionError

当除数为零时,程序会崩溃。通过 try-except 捕获异常:

with open('output.txt', 'a') as file:
    file.write("\nAppended line.")

10.3.5 处理 FileNotFoundError

读取不存在的文件时抛出此异常:

filename = 'missing.txt'
try:
    with open(filename) as file:
        content = file.read()
except FileNotFoundError:
    print(f"文件 {filename} 不存在!")

10.3.6 静默失败

若想忽略某些异常,可用 pass:

try:
    # 可能出错的代码
except FileNotFoundError:
    pass  # 静默处理

10.4 存储数据:JSON的妙用

10.4.1 使用 json.dump() 和 json.load()

将数据保存为JSON格式:

import json
data = {'name': 'Alice', 'age': 30}
with open('data.json', 'w') as file:
    json.dump(data, file)  # 写入文件
# 读取JSON数据
with open('data.json') as file:
    loaded_data = json.load(file)
print(loaded_data['name'])  # 输出:Alice

10.4.2 重构代码

将功能拆分为独立函数,提升可维护性:

def save_user_data(username):
    """保存用户数据到JSON文件"""
    with open('users.json', 'w') as file:
        json.dump({'username': username}, file)

10.5 小结与最佳实践

- 文件操作:优先使用 with 语句,避免忘记关闭文件。

- 异常处理:精准捕获特定异常(如 FileNotFoundError),避免笼统的 except。

- 数据存储:JSON适合存储结构化数据,且跨平台兼容。

- 代码风格:添加清晰的注释,拆分复杂操作为函数。

通过本章学习,你将能够优雅地处理文件读写、从容应对程序错误,并掌握数据持久化的核心技巧。现在,动手写一段代码试试吧!

到此这篇关于Python文件和异常详解的文章就介绍到这了,更多相关Python文件和异常内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中日志模块logging的使用技巧和应用详解

    Python中日志模块logging的使用技巧和应用详解

    在Python开发中,日志记录是一个非常重要的环节,它不仅有助于开发者追踪程序的执行流程,还能在出现问题时提供关键信息,帮助快速定位并解决问题,本文将结合实际案例,详细介绍logging模块的基础用法和高级特性,需要的朋友可以参考下
    2024-08-08
  • 用表格帮你了解Python数据类型

    用表格帮你了解Python数据类型

    这篇文章主要为大家介绍了Python数据类型,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助<BR>
    2022-01-01
  • pytz格式化北京时间多出6分钟问题的解决方法

    pytz格式化北京时间多出6分钟问题的解决方法

    这篇文章主要给大家介绍了关于pytz格式化北京时间多出6分钟问题的解决方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • 浅谈Pytorch中autograd的若干(踩坑)总结

    浅谈Pytorch中autograd的若干(踩坑)总结

    这篇文章主要介绍了Pytorch中autograd的若干(踩坑)总结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-05-05
  • Python获取好友地区分布及好友性别分布情况代码详解

    Python获取好友地区分布及好友性别分布情况代码详解

    利用Python + wxpy 可以快速的查询自己好友的地区分布情况,以及好友的性别分布数量。还可以批量下载好友的头像,拼接成大图。感兴趣的朋友跟随小编一起看看吧
    2019-07-07
  • 深入浅析Python数据分析的过程记录

    深入浅析Python数据分析的过程记录

    我们先利用 Jupyter Notebook 来进行分析,然后,在得到成果以后,利用 Pycharm 来进行完整的程序设计,对Python数据分析的过程记录感兴趣的朋友一起看看吧
    2022-01-01
  • python添加模块搜索路径方法

    python添加模块搜索路径方法

    下面小编就为大家带来一篇python添加模块搜索路径方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Django自定义排序ORM示例详解

    Django自定义排序ORM示例详解

    这篇文章主要为大家介绍了Django自定义排序ORM示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • python 删除excel表格重复行,数据预处理操作

    python 删除excel表格重复行,数据预处理操作

    这篇文章主要介绍了python 删除excel表格重复行,数据预处理操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Pygame Display显示模块的使用方法

    Pygame Display显示模块的使用方法

    本文主要介绍了Pygame Display显示模块的使用方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11

最新评论