You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中r+与w+文件打开模式的区别是什么?

Python中r+与w+文件打开模式的区别

核心差异点

  • 文件存在性与原有内容处理

    • r+:仅能打开已存在的文件,若文件不存在直接抛出FileNotFoundError,原有内容不会被自动清空(除非主动写入覆盖)。
    • w+:若文件不存在则自动创建新文件;若文件已存在,会完全清空原有内容,等同于生成一个空文件后再操作。
  • 初始文件指针位置

    • 两者打开后指针默认都在文件开头(偏移量0处),但w+因清空了文件,此时文件长度为0。

代码示例对比

1. 使用r+模式(文件已存在)

假设test.txt原有内容为:Hello World

with open('test.txt', 'r+') as f:
    f.write('Hi')  # 从开头写入,覆盖前2个字符
    f.seek(0)  # 将指针移回文件开头
    print(f.read())  # 输出结果: Hiello World

2. 使用w+模式(文件已存在)

同样针对原有内容为Hello World的test.txt:

with open('test.txt', 'w+') as f:
    f.write('Hi')
    f.seek(0)
    print(f.read())  # 输出结果: Hi

额外注意事项

  • 使用r+时,若直接执行读取操作,会从当前指针位置开始读;若写入后未移动指针,后续读取会从写入结束的位置开始。
  • 使用w+时,写入完成后指针会停在文件末尾,若要读取刚写入的内容,必须调用seek(0)将指针移回开头。

内容的提问来源于stack exchange,提问作者Rishika Arora

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 13:50:33