Python小白学习教程从入门到入坑------第二十九课 访问模式&文件定位操作(语法进阶)

时间:2024-11-10 07:34:38

一、访问模式

模式 可做操作 若文件不存在 是否覆盖
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'(追加)模式