【Python】文件操作 r+ 的问题

python文件操作open的使用方法详解 文件操作的作用: 读取内容,写入内容,备份内容等 文件操作就是把一些数据存放起来,可以让程序下一次执行的时候直接使用,而不必重新 制作一份,省时省力 阅读详情
问题背景

想用 python 实现文件的读取,并修改部分内容,再写回去。 r+ 是最符合的权限,可读写,并且可以覆盖文件之前的内容。
但是实际使用时, 发现修改后的内容是追加的方式,而不是覆盖。

 with open(gitignore, "r+") as f:
      ignore_data = f.read()
      if "cconfig.h" in ignore_data:
          ignore_data = ignore_data.replace("cconfig.h", "")
          f.write(ignore_data)
原因分析

因为在使用read后,文档的指针已经指向了文本最后,而write写入的时候是以指针为起始,因此就产生了追加的效果。

解决方案

如果想要覆盖,需要先seek(0),然后使用truncate()清除后,即可实现重新覆盖写入。

 with open(gitignore, "r+") as f:
      ignore_data = f.read()
      if "cconfig.h" in ignore_data:
          ignore_data = ignore_data.replace("cconfig.h", "")
          f.seek(0) # 指向文本开头
          f.truncate() # 清除文本
          f.write(ignore_data)
PLL锁相环性能上不去?可能是电荷泵的电流失配在捣鬼(附Jae-Shin Lee经典方案解析) 本文深入分析了PLL锁相环性能瓶颈的根源——电荷泵电流失配问题,详细解析了Current Mismatch和Current Deviation的区别及其对系统的影响。重点介绍了Jae-Shin Lee的多级电流镜技术,该方案通过运放构建虚拟短路和四级电流镜结构,显著降低了电流失配,使参考杂散改善15dB以上。文章还提供了从仿真到流片的完整优化流程,帮助工程师系统解决电荷泵性能问题。 阅读详情

相关推荐

Codex VS Claude Code 全面测评!代码开发到底选谁?

评测结果6项指标(设计质量、提示遵从度、响应式、代码质量、细节关注、惊喜度)虽未公布最终赢家,但实测本身已揭示两工具在前端任务上的直接差异。Codex基于OpenAI的云沙箱架构,API通过全球CDN分发,但在国内直连时,依赖特定网络环境。:纯终端工具,直接在你的iTerm或终端中运行,不新建窗口、不切换上下文,与本地开发环境无缝融合。GPT-5.3 Codex(xhigh)输入$1.75/百万token,输出$14.00/百万token,混合均价约**$4.81/百万token**。

Jedudu的博客 3068

【转载】解决Python-r+写入时没有覆盖而是追加的情况

在使用Python进行txt文件的读写时,当打开文件后,首先用read()对文件的内容读取,然后再用write()写入,这时发现虽然是用“r+”模式打开,按道理是应该覆盖的,但是却出现了追加的情况。 这是因为在使用read后,文档的指针已经指向了文本最后,而write写入的时候是以指针为起始,因此就产生了追加的效果。 如果想要覆盖,需要先seek(0),然后使用truncate()清除后,即可实现重新覆盖写入 with open("./txt.txt", "r+") as f:

Deadeyess的博客 2594

ROS2实战:打造智能巡检机器人的关键技术与实现

本文详细介绍了基于ROS2和Navigation2构建智能巡检机器人的完整实战流程。通过设计主从协作的事件驱动架构,实现了机器人在已知地图中的自动导航、定点语音播报和环境图像采集功能。文章涵盖了从环境搭建、仿真配置到核心控制节点、语音服务与图像记录模块的代码实现,为开发者打造实用的自动巡检机器人提供了清晰的技术指南。

weixin_29031057的博客 222

python 读写改动源文件文件w+,r+的坑

一直以为w+可读可写,会先清空的意思是我 with open(input, ‘w+’, encoding=‘utf-8’) as f: print( f.read()) 会打印原来的内容. f.write(“3123d”) 会把原文覆盖掉. 实际呢,w+一上来哪怕我写的是pass,也把我原文给清空了.根本读不了原文!!! 好吧,试试先写后读 with open(input, ‘w+’, encod...

wujiafa1988的博客 686

C51单片机驱动ILI9341彩屏实战:从Proteus仿真到绘制自定义图案(附完整代码)

本文详细介绍了使用C51单片机驱动ILI9341彩屏的完整实战流程。内容涵盖硬件连接、8080并行接口时序模拟、寄存器初始化、屏幕方向设置以及基本图形绘制原理,并重点讲解了如何在Proteus仿真环境中搭建电路、调试代码,最终实现自定义图案的显示。文章提供了完整的代码示例,为嵌入式开发学习者和复古硬件爱好者提供了一套可行的解决方案。

rnn9storyteller的博客 511

Conda报错急救指南:遇到Malformed version string ‘~‘怎么办?(附最新解决方案)

本文深度解析Conda报错`Malformed version string '~'`的根源与解决方案。该错误通常由版本字符串解析异常或Conda版本过旧引起。文章提供了从清理缓存、针对性升级到环境重建的完整修复流程,并强调了升级Conda至最新版本是解决此类`CondaValueError`问题的根本方法,帮助开发者高效恢复工作环境。

weixin_28835789的博客 646

文本覆盖写'r+’需要注意的问题,用好seek

遇到一个需求是要把文档中的三层文件夹结构变成两层,想着之间replace('..\\..\\..\\', '..\\..\\')就行了,然后读取文件的时候用'r+'模式,这样就可以覆盖读,还不用多弄出一个文件来,美滋滋。可是还是遇到了问题。 简化的代码如下 with open('D:\\demo.txt','r+', 777, 'utf-8') as f1: infos = f1.r...

struggle6688的专栏 595

ONFI5.0命令字实战指南:从基础操作到高级应用

本文深入解析ONFI5.0协议的核心——命令字,提供从基础操作到高级应用的实战指南。详细拆解了NAND闪存的复位、读状态、数据读取(00-30)、页编程(80-10)和块擦除(60-D0)等关键命令周期,并探讨了多平面操作与缓存操作等高级性能优化技巧,帮助开发者高效、稳定地与NAND芯片进行底层交互。

vscode5coder的博客 462

Python中文件操作模式‘r+‘、‘w+‘和‘a+‘

则只覆盖掉光标之后写入长度大小的那部分原文档,光标移到写入长度的位置***读(write)时光标都是移动到相应的写入长度位后。2.w+模式一开始光标在开始(0)处。当写入write时,操作方式位清空,不论写入长度大于还是小于原文档长度,光标都移到文档最后位(此时的文档最后位也就等于写入长度位后)1.r+模式一开始光标在开始(0)处。当写入write时,操作方式为覆盖,若写入长度大于原文档长度,则全部覆盖掉,光标移到最后位;3.a+模式,根据光标位置,write方法在光标位置后添加。

weixin_70368923的博客 2318

学习Fidder主要掌握的技术——流量篡改

本文介绍了Fiddler工具的三种常用调试方法:1)本地映射-通过保存修改JSON响应文件实现接口数据模拟;2)Composer接口调试-通过修改请求参数快速测试接口异常处理;3)断点调试-在请求/响应过程中拦截并修改数据。这三种方法分别适用于前端开发、接口测试和健壮性验证等场景,能够有效提高调试效率。操作步骤包括保存响应、修改数据、配置规则等关键环节,并提供了详细的界面操作指引。

2301_79022773的博客 353

word多级列表为什么会变成黑块解决思路

今天在写文档时,发现WORD5级的标题都变黑块了,找了度娘的资料,终于解决了。 第一种 1、光标bai放在黑快的右边,按向左的箭头,然后ctrl+shift+s,点击重新应用。 2、点击“定义新的多级列表”(不知道从哪儿找这个按钮的百度下),直接点确定。 3、这里很重要!!!不要直接保存,而是直接关掉word,会提示保存还是不保存,这个地方再点击保存。 第二种 Word2016 使用宏代码修复方法 1.找到视图-宏,打开 查看宏 2.创建宏 3.贴...

霍力强的专栏 8580

python文件读写模式(r+, w+, a+, rb+, rw+, ra+)

增加+:表示把当前文件以读写模式打开(r+, w+, a+, rb+, rw+, ra+),基本特性和不适用+号之前一致,操作结果有些许区别。带上+号之后只要open一个文件之后就可读可写。这里要注意读的时候文件光标移动,写的时候覆盖等问题,大家用代码自己试一下,这里文字很难描述。发布于2021-12-07 15:36:46阅读 2.3K0。

hzp666的博客 6831

MATLAB - 使用 RRT 进行挖掘机运动规划

本例演示了如何使用运动规划器在包含障碍物的环境中为挖掘机规划路径。在此示例中,您将以运动树的简化形式为挖掘机建模,然后使用基于采样的运动规划器确定挖掘机在存在障碍物的两个姿势之间的可行路径。在 Simscape™ 多体™ 模型中模拟结果。

机器人控制与仿真应用 1850

Python文件操作

第一步 排除文件打开方式错误: r只读,r+读写,不创建 w新建只写,w+新建读写,二者都会将文件内容清零 (以w方式打开,不能读出。w+可读写) w+与r+区别: r+:可读可写,若文件不存在,报错;w+: 可读可写,若文件不存在,创建 r+与a+区别: fd = open("1.txt",'w+') fd.write('123') fd = open("1...

sun___shy的博客 176

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Python文件操作中的a,a+,w,w+,rb+,rw+,ra+几种方式的区别

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

寒泉 3万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Python文件操作中的a,a+,w,w+几种方式的区别 ——转载

转载:https://blog.youkuaiyun.com/qq_38059635/article/details/81606977   第一步 排除文件打开方式错误: r只读,r+读写,不创建 w新建只写,w+新建读写,二者都会将文件内容清零 (以w方式打开,不能读出。w+可读写) w+与r+区别: r+:可读可写,若文件不存在,报错;w+: 可读可写,若文件不存在,创建 r+与a+区别:...

lshdp的博客 1241

Python | 文件操作

先在一个你比较容易找得到的地方,右键新建一个文本文件,在里面输入几行字,然后保存,关闭第一行:” f1 = open(“D:\文档\MD文件\测试.txt”,encoding=‘utf-8’,mode=‘r’) “例如在pycharm的文件夹里创建一个txt文件,与main.py文件同一目录,在main.py中有代码要打开这个txt文件,只需传入这个文件的完整名称即可open() 是内置函数,open底层调用的是操作系统的接口f1是。

千禧年无敌优香大王的博客 937

python文件打开模式rb表示以只读模式打开文件_一篇搞懂python文件读写操作(r/r+/rb/w/w+/wb/a/a+/ab)

一篇搞懂python文件读写操作(r/r+/rb/w/w+/wb/a/a+/ab)

weixin_39610722的博客 1238

python3编码方式_python3 文件操作 r w a b区分,UnicodeEncodeError编码错误解决

open() 文件操作的几种方式r 以读的方式打开w 以写方式打开a 以追加模式打开 (从 EOF 开始, 必要时创建新文件)r+ 以读写模式打开w+ 以读写模式打开 (参见 w )a+ 以读写模式打开 (参见 a )rb:读取二进制文件,例如图片文件wb:写入二进制数据,例如保存图片的时候会用到ab:追加二进制数据rb+:二进制的读写模式,即可以读文件,又可以向文件写入内容wb+:同上ab+:同...

weixin_39968724的博客 196

python文件操作的基本流程

由于使用python打开文件的时候是通过操作系统完成的,如果打开的文件是文本文件,会涉及到字符编码的问题,如果在打开文件时没有指定字符编码,操作系统就会使用自己默认的编码打开文件(windows下是gbk,在linux下是utf-8),如果要保证不乱码,文件以什么编码格式存的就要以什么格式打开。在文件不存在时会在程序文件所在文件夹创建一个文件,如果文件存在,会清空文件中的内容,文件指针跳到文件开头,进行写操作。文件不存在时会在当前文件夹创建文件,文件存在时,文件指针直接移动到文件末尾,不会清空文件数据。

nhb687096的博客 2080

Python---文件操作

学会文件操作,把数据保存在文件里,再也不用担心数据丢失!!!

weixin_73888239的博客 1023

爬虫, r.text和r.content的区别

爬虫, r.text和r.content的区别

changan 553

文件操作及相关函数

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录文件操作文件操作流程文件的操作模式读取文件的五种方式只读(r , rb) 文件操作 文件操作流程 文件以什么编码存储的,就以什么编码打开 参数: 1.文件路径 2.编码方式,encode 3.执行动作(打开方式):只读,只写,追加,读写,写读… 例如: 打开一个已经存在的文件 f = open('D:\qycache\飞碟说.txt',encoding='utf-8',mode='r') content = f.read() pr

m0_46471716的博客 515

python诗歌文件格式处理_Python文件基本操作

Python文件基本操作文件的读写方法有六种:W,R,A,W+,A+,R+读模式:#-*-coding:utf-8-*-__author__='xiaojiaxin'__file_name__='file1'importtime#文件操作三步走:1.创建;2.操作;3.关闭文件#文件操作六种模式:r(读模式),w(覆盖写模式),a(追加写模式),r+,w+.a+f=open('小重山...

weixin_39545310的博客 476

Python模糊基础点--文件操作

文件的基本操作 文件操作三步走 open函数打开文件 write函数写入文件 close函数关闭文件 入门级案例 解决写入中文乱码问题 文件的读取操作 聊聊文件操作的mode模式 seek函数移动光标 文件备份应用 文件和文件夹操作 os模块 与文件操作相关方法 与文件夹操作相关操作 文件夹删除补充(递归删除)

FeatherWaves 649

Python 文件操作(创建、读取,系统学Python从零开始

不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~给大家准备的学习资料包括但不限于:Python 环境、pycharm编辑器/永久激活/翻译插件python 零基础视频教程Python 界面开发实战教程Python 爬虫实战教程Python 数据分析实战教程python 游戏开发实战教程Python 电子书100本。

2401_83621384的博客 800

python获取文件字节数_python关于文件操作中的字符个数和字节数

记得刚开始学习python文件操作写文件的时候有个问题,很奇怪。最后知道了就是字节数的原因。我们先来看个例子。新建个文件存为utf-8命名为0117utf-8.txt记得去掉BOM头。我们用r+模式尝试去修改>>> fp=open("d:\\pydelete\\0117utf-8.txt","r+")>>> fp.write("aa")2>>> fp.close()>>>结果如下乱码一大坨。这里就...

weixin_39609527的博客 1150
上一篇: React 国际化
下一篇: github 中使用 ssh
ErikChan.hk
博客等级 码龄12年 107粉丝 82原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值