本教程提供Python文件处理的全面指南。文件对于持久化数据存储和检索至关重要,使您的程序能够与超出其运行时的数据交互。我们将涵盖基本的文件操作,从打开和关闭文件到读取、写入、重命名和删除文件。我们还将探讨错误处理和高效文件管理的最佳实践。
目录:
1. 打开文件
open()
函数是Python中文件交互的基石。它以文件名(字符串)和模式作为主要参数。模式决定了如何访问文件(读取、写入、追加等)。
常见的模式包括:
'r'
:读取(默认)。以读取模式打开。如果文件不存在则引发错误。'w'
:写入。以写入模式打开。如果文件存在则覆盖;如果不存在则创建。'a'
:追加。以写入模式打开。如果文件存在则将数据追加到末尾;如果不存在则创建。'x'
:独占创建。创建一个新文件。如果文件已存在则引发错误。'b'
:二进制模式。用于非文本文件(图像、可执行文件)。可以与其他模式组合(例如,'rb'
、'wb'
)。't'
:文本模式(默认)。用于文本文件。
# 以写入模式打开文件
file = open("my_file.txt", "w")
# 以读取模式打开文件
file = open("my_file.txt", "r")
# 以二进制模式读取文件
file = open("image.jpg", "rb")
2. 文件对象和上下文管理器
open()
返回一个文件对象,提供文件交互的方法。一个重要的最佳实践是使用上下文管理器(with
语句)来确保文件自动关闭,即使发生错误:
with open("my_file.txt", "w") as file:
file.write("This is some text.n") # 此代码块结束后文件自动关闭
with open("my_file.txt", "r") as file:
contents = file.read()
print(contents)
3. 写入文件
write()
方法将字符串写入文件。要写入多行,请使用n
表示换行符。
with open("my_file.txt", "w") as file:
file.write("Line 1n")
file.write("Line 2n")
4. 读取文件
几种方法可以读取文件数据:
read()
:将整个文件内容读取到单个字符串中。readline()
:读取一行。readlines()
:将所有行读取到字符串列表中。- 迭代:可以直接迭代文件对象逐行读取。
with open("my_file.txt", "r") as file:
contents = file.read()
print(contents)
file.seek(0) # 重置文件指针
line = file.readline()
print(line)
file.seek(0) # 重置文件指针
lines = file.readlines()
print(lines)
file.seek(0) # 重置文件指针
for line in file:
print(line, end="") # end="" 防止额外换行
5. 文件系统操作:重命名和删除
os
模块提供文件系统操作的函数:
import os
# 重命名文件
os.rename("my_file.txt", "new_file.txt")
# 删除文件
os.remove("new_file.txt")
6. 异常处理
在处理文件时,始终处理潜在的异常(FileNotFoundError
、IOError
等):
try:
with open("my_file.txt", "r") as file:
# ... 文件操作 ...
except FileNotFoundError:
print("文件未找到。")
except IOError as e:
print(f"发生IO错误:{e}")