一、访问模式
模式 | 可做操作 | 若文件不存在 | 是否覆盖 |
---|---|---|---|
r | 只能读 | 报错 | - |
r+ | 可读可写 | 报错 | 是 |
w | 只能写 | 创建 | 是 |
w+ | 可读可写 | 创建 | 是 |
a | 只能写 | 创建 | 否,追加写 |
a+ | 可读可写 | 创建 | 否,追加写 |
1.1 r
r:只读模式(默认模式),文件必须存在,不存在就会报错
以下是关于这种模式的一些关键点:
只读模式:使用'r'模式打开文件时,您只能读取文件的内容,不能写入或修改它
文件必须存在:在尝试以 'r' 模式打开文件之前,该文件必须已经存在于文件系统中。如果文件不存在,open()函数将抛出一个FileNotFoundError异常
默认模式:如果您在调用open()函数时没有指定模式参数,Python将默认使用'r'模式
异常处理:由于文件可能不存在,因此通常建议在尝试打开文件时使用异常处理来捕获FileNotFoundError,从而避免程序因未处理的异常而崩溃
首先我们在 py1文件夹中新建一个文件名为 example.txt,如下图所示:
eg:
f = open('example.txt','r') # 默认就是r
f.write('...')
f.close()
# 报错,使用'r'模式打开文件时,您只能读取文件的内容,不能写入或修改它
下面是一个使用 'r' 模式打开文件的示例,包括异常处理:
try:
# 尝试以只读模式打开文件
with open('example.txt', 'r', encoding='utf-8') as file:
# 读取文件内容
content = file.read()
# 处理文件内容
print(content)
except FileNotFoundError:
# 如果文件不存在,则打印错误消息
print("The file 'example.txt' does not exist.")
在这个示例中,我们使用了try...except语句来捕获FileNotFoundError异常,并在文件不存在时打印一条错误消息
使用with语句可以确保文件在读取后被正确关闭,即使在读取过程中发生异常也是如此
1.2 w
w:只写模式。文件存在就会先清空文件内容,再写入添加内容,不存在就创建新文件
关于 'w' 模式的一些详细解释:
只写模式:在这种模式下,文件被打开仅用于写入。尝试从文件中读取内容将会失败,并可能引发异常(尽管在 'w' 模式下通常不会尝试读取)
清空文件内容:如果指定的文件已经存在,'w' 模式会截断(即清空)该文件的所有内容。这意味着文件将变得为空,然后您可以开始写入新的内容
创建新文件:如果指定的文件不存在,'w' 模式将创建一个新文件,并允许您向其中写入内容
使用场景:'w' 模式适用于您想要覆盖文件的现有内容,或者当您确信文件内容不再需要并且想要写入全新内容的场景
下面是一个使用 'w' 模式的示例:
# 假设 example.txt 文件已经存在,并且包含一些内容
try:
with open('example.txt', 'w', encoding='utf-8') as file:
# 这将清空 example.txt 的内容,并写入新的内容
file.write("This is the new content of the file.\n")
except IOError as e:
# 捕获并处理可能发生的 IO 错误
print(f"An error occurred: {e}")
在这个示例中,example.txt 文件的内容将被清空,并替换为 "This is the new content of the file.\n"
如果 example.txt 文件不存在,它将被创建,并包含这段新内容
请务必小心使用 'w' 模式,因为一旦文件被打开并写入,其原有内容将无法恢复。如果您只是想向文件追加内容而不清空它,应该使用 'a'(追加)模式