Python文件和异常处理小结
作者:Alfadi联盟 萧瑶
文件和异常处理是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文件和异常内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!