Python 文件 I/O 详解与实战练习:从基础到高级应用167


Python 凭借其简洁易懂的语法和丰富的库,成为数据处理和文件操作的理想选择。本文将深入探讨 Python 中的文件 I/O 操作,涵盖从基础的文件读写到高级的异常处理和高效数据处理技巧。我们将通过大量的代码示例和练习题,帮助你掌握 Python 文件 I/O 的精髓。

一、基础文件操作:打开、读取和写入

Python 提供了内置函数 `open()` 用于打开文件。该函数接受文件名和模式作为参数。常见的模式包括:
`'r'`: 读取模式 (默认)
`'w'`: 写入模式 (如果文件存在则覆盖)
`'a'`: 追加模式 (在文件末尾追加)
`'x'`: 创建写入模式 (如果文件存在则抛出异常)
`'b'`: 二进制模式
`'t'`: 文本模式 (默认)
`'+'`: 更新模式 (可读可写)

例如,读取一个文本文件:```python
try:
with open("", "r") as f:
contents = ()
print(contents)
except FileNotFoundError:
print("文件不存在!")
```

写入一个文本文件:```python
with open("", "w") as f:
("Hello, world!")
("This is a test.")
```

二、逐行读取文件

对于大型文件,逐行读取更有效率:```python
with open("", "r") as f:
for line in f:
print(()) # strip() 去除行尾的换行符
```

三、处理二进制文件

处理图像、音频等二进制文件,需要使用二进制模式 ('b'):```python
with open("", "rb") as f:
data = ()
# 处理二进制数据
```

四、上下文管理器 `with` 语句

使用 `with` 语句可以确保文件在使用完毕后自动关闭,即使发生异常:

五、异常处理

文件操作可能会遇到各种异常,例如 `FileNotFoundError`, `IOError`, `PermissionError` 等。使用 `try...except` 块可以优雅地处理这些异常:```python
try:
with open("", "r") as f:
contents = ()
except FileNotFoundError:
print("File not found!")
except IOError as e:
print(f"An IO error occurred: {e}")
```

六、高级应用:CSV 文件处理

Python 的 `csv` 模块提供了强大的 CSV 文件处理功能:```python
import csv
with open("", "r", newline="") as csvfile:
reader = (csvfile)
for row in reader:
print(row)
with open("", "w", newline="") as csvfile:
writer = (csvfile)
(["Name", "Age", "City"])
(["Alice", "25", "New York"])
```

七、高级应用:JSON 文件处理

Python 的 `json` 模块用于处理 JSON 数据:```python
import json
data = {'name': 'Bob', 'age': 30, 'city': 'London'}
with open("", "w") as f:
(data, f, indent=4) # indent 参数用于格式化输出
with open("", "r") as f:
loaded_data = (f)
print(loaded_data)
```

八、练习题
编写一个程序,将一个文本文件的内容复制到另一个文件。
编写一个程序,统计一个文本文件中每个单词出现的次数。
编写一个程序,将一个 CSV 文件中的数据转换成 JSON 格式。
编写一个程序,处理一个包含大量数据的日志文件,提取特定信息。
编写一个程序,实现简单的文件加密和解密功能。(提示:可以使用 `base64` 模块)

九、总结

本文系统地介绍了 Python 文件 I/O 的基本概念、常用方法和高级应用。通过学习和实践这些知识,你将能够轻松地处理各种类型的文件,并有效地进行数据读写和处理。记住,熟练掌握异常处理和高效的数据处理技巧对于编写高质量的 Python 代码至关重要。 希望这些练习能够帮助你巩固所学知识,并进一步提升你的 Python 编程能力。

2025-05-10


上一篇:将Python脚本打包成可执行EXE文件:完整指南

下一篇:Python函数详解:从入门到进阶, CSDN案例分析