Python文件读写详解:高效处理文本和二进制文件268


Python 提供了强大的文件读写功能,使其成为处理各种数据文件的理想选择。无论是文本文件、CSV 文件、JSON 文件,还是二进制文件,Python 都能轻松应对。本文将深入探讨 Python 文件读写操作的各种方法,包括基本的文件操作、高效的迭代读取、以及处理不同文件类型的技巧。

一、打开文件

在 Python 中,使用 open() 函数打开文件。该函数接受两个主要参数:文件名和模式。模式指定了文件的打开方式,例如读取 ("r")、写入 ("w")、追加 ("a")、创建 ("x") 等。 此外,还可以指定编码方式(例如 "utf-8"),以处理不同字符集的文件。
file = open("", "r", encoding="utf-8")
# 打开名为 的文件,以读取模式打开,使用 utf-8 编码

如果不指定编码,Python 会使用系统的默认编码,这可能会导致读取非 ASCII 字符时出现问题。因此,强烈建议始终明确指定编码。

二、读取文件

打开文件后,可以使用多种方法读取文件内容:
read(): 读取整个文件内容到一个字符串中。对于大型文件,这可能会消耗大量内存。
readline(): 读取文件的一行内容。这对于处理大型文件更有效率。
readlines(): 读取文件所有行到一个列表中,每一行作为一个列表元素。
迭代器:最有效率的方法,逐行读取文件,避免一次性加载所有内容到内存。


# 读取整个文件
with open("", "r", encoding="utf-8") as file:
content = ()
print(content)
# 读取一行
with open("", "r", encoding="utf-8") as file:
line = ()
print(line)
# 读取所有行到列表
with open("", "r", encoding="utf-8") as file:
lines = ()
for line in lines:
print(()) # strip() 去除换行符
# 使用迭代器逐行读取
with open("", "r", encoding="utf-8") as file:
for line in file:
print(())

with open(...) as file: ... 语句是一个上下文管理器,它确保文件在使用完毕后自动关闭,即使发生异常。

三、写入文件

写入文件与读取文件类似,但需要使用写入模式 ("w", "a")。 "w" 模式会覆盖现有文件内容,而 "a" 模式会在文件末尾追加内容。
# 写入文件
with open("", "w", encoding="utf-8") as file:
("This is a new line.")
("This is another line.")
# 追加内容到文件
with open("", "a", encoding="utf-8") as file:
("This line is appended.")


四、处理不同文件类型

Python 可以轻松处理各种文件类型。例如,处理 CSV 文件可以使用 csv 模块:
import csv
with open("", "r", newline="") as csvfile:
reader = (csvfile)
for row in reader:
print(row)

处理 JSON 文件可以使用 json 模块:
import json
with open("", "r") as jsonfile:
data = (jsonfile)
print(data)

五、二进制文件读写

处理二进制文件,例如图片或音频文件,需要使用 "rb" (读取二进制) 或 "wb" (写入二进制) 模式。 读取二进制文件通常会返回字节对象 (bytes)。
with open("", "rb") as binary_file:
data = ()
# 处理二进制数据 ...

六、异常处理

文件操作可能会引发异常,例如 FileNotFoundError (文件不存在) 或 IOError (IO 错误)。 使用 try...except 块可以处理这些异常:
try:
with open("", "r", encoding="utf-8") as file:
# 读取文件内容
pass
except FileNotFoundError:
print("File not found.")
except IOError as e:
print(f"An IO error occurred: {e}")

七、总结

Python 提供了丰富而强大的文件读写功能,可以有效地处理各种类型的文件。 理解不同的文件模式、读取和写入方法以及异常处理,是编写高效可靠的 Python 文件处理程序的关键。 记住始终使用上下文管理器 (with open(...) as file: ...) 来确保文件安全关闭,并根据需要指定正确的编码方式,以避免潜在的字符编码问题。

2025-08-26


上一篇:Python字符串结尾判断:方法详解及性能比较

下一篇:Python isinstance() 函数详解:类型检查与灵活应用