Python / open()函数mode模式r、w、a、r+、w+、a+

部署运行你感兴趣的模型镜像

本文根据参考链接实际操作后编写,仅用于记录。

原文移步,参考:https://blog.youkuaiyun.com/sinat_41774836/article/details/111290413

modedescriptionexception
r(只读模式)

1.只读不写。

2.打开时光标定位到开头位置。

执行写操作提示io.UnsupportedOperation: not writable

r+(读写模式)

1.先读后写。

2.打开时光标定位到开头位置。

3.打开时不清空内容。

4.读完光标移动到末尾位置。

5.写追加到末尾位置。

1.先写后读。

2.打开时光标定位在开头位置。

3.从开头位置开始覆盖写入。

4.光标定位到写结束的位置。

5.读取剩下的内容,可能为空。

w(只写模式)

1.只写不读。

2.打开时自动清空原文档。

执行读操作提示io.UnsupportedOperation: not readable

w+(写读模式)

1.先写后读。

2.打开时自动清空原文档。

3.写完光标移动到末尾位置。

4.此时进行读取,内容为空。需要将光标移到开头位置,f.seek(0)。

1.先读后写。

2.打开时自动清空原文档。

3.读取内容为空。

a(追加模式)

1.只写不读。

2.打开时不清空原文档。

3.打开时光标定位到末尾位置。

执行读操作提示io.UnsupportedOperation: not readable
a+(追加写读模式)

1.先写后读。

2.打开时不清空原文档。

3.打开时光标定位到末尾位置。

4.不清空原文档,在末尾追加。

5.此时进行读取,内容为空。需要将光标移到开头位置,f.seek(0)。

1.先读后写。

2.打开时不清空原文档。

3.打开时光标定位到末尾位置。

4.读取内容为空。

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

<think>好的,用户想知道Pythonopen函数的'w'和'r'模式的区别。首先,我需要回忆这两个模式的基本定义。'r'是只读模式,而'w'是写入模式,如果文件存在会覆盖,不存在则创建。记得引用中提到,使用'w'模式时,打开文件会清空原有内容,比如引用[1]和引用[2]中的例子。 接下来,用户可能关心其他模式,比如'a',但问题集中在'w'和'r'。需要明确两者的主要区别在于是否允许写入,以及文件指针的位置。在'r'模式下,不能写入,只能读取,否则会报错。而'w'模式允许写入,但会截断文件。 还要注意文件不存在时的行为。'r'模式会抛出FileNotFoundError,而'w'会创建新文件。这点需要提到,可能用户会遇到文件找不到的问题,所以正确选择模式很重要。 另外,引用中的例子,比如引用[2]使用'w'模式写入,而引用[4]用'r'模式读取文件。这些例子可以作为实际用法说明。可能用户需要代码示例来理解,所以给出简单的例子会更好。 需要确保回答结构清晰,分点说明区别,比如权限、文件存在时的处理、指针位置等。同时,相关问题部分可以引导用户了解其他模式或常见错误,比如覆盖问题,或者如何追加内容,这样能帮助他们更深入理解。 最后,检查引用是否正确应用,比如引用[1]提到模式的区别,引用[2]和[4]展示具体用法,确保每个引用都自然地融入回答中,不显得突兀。还要确认没有技术错误,比如模式的行为是否符合Python官方文档的描述,避免误导用户。</think>### Pythonopen函数的'w'和'r'模式区别 Python的`open()`函数用于文件操作,其核心区别在于不同模式对文件的**访问权限**和**文件处理方式**。以下是`'w'`(写入模式)和`'r'`(只读模式)的主要区别: 1. **访问权限** - `'r'`模式:仅允许**读取文件内容**,若尝试写入会触发`io.UnsupportedOperation`错误[^1]。 - `'w'`模式:允许**写入内容到文件**,且会**清空文件原有内容**;若文件不存在则自动创建[^2]。 2. **文件存在性要求** - `'r'`模式:文件必须存在,否则抛出`FileNotFoundError`[^1]。 - `'w'`模式:文件不存在时会自动创建,存在时则覆盖原有内容[^2]。 3. **文件指针位置** - `'r'`模式:指针初始位于文件开头,逐行读取后指针后移。 - `'w'`模式:指针始终位于文件开头,写入内容会从头部开始覆盖。 ### 代码示例对比 ```python # 示例1:'r'模式读取文件 with open('test.txt', 'r') as f: print(f.read()) # 输出文件全部内容[^4] # 示例2:'w'模式写入文件 with open('data.txt', 'w') as f: f.write('Hello World') # 覆盖原内容或新建文件 ``` ### 注意事项 - 使用`'w'`模式时需谨慎,避免意外覆盖重要数据。 - 若需追加内容而不覆盖,应使用`'a'`(追加模式)。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值