文件操作—全局修改
Posted yan-long
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件操作—全局修改相关的知识,希望对你有一定的参考价值。
操作的文件内容
床前明月光,
疑是地上霜。
举头望明月,
低头思家乡。
全局修改代码
with open("test_file","r+",encoding="utf-8") as f: old_str = input("old_str:") date=f.read() if old_str in date and old_str !="": new_str=input("new_str:") new_date=date.replace(old_str,new_str) f.truncate(0)#清空文件内容,光标在尾部 # print(f.tell()) 78 f.seek(0)#光标回到首部,开始写入内容 f.write(new_date) # print(f.tell()) 78 f.seek(0)#光标在尾部 print(f.read()) else: print("内容不存在")
总结:在r+模式,如果是先读取,则写入内容时默认追加到末尾;如果是直接写,则从光标的位置直接写入文件,会覆盖原来的内容。
文件的r+模式
with open("test_file","r+",encoding="utf-8") as f: f.readline() # f.seek(20) print(f.tell())#20,第一行的末尾处 f.write(" 好好学习")#默认追加到最后面 print("-----------") print(f.tell())#此时的光标是在末尾 print(f.read())#从第一行的末尾处的继续读文件的内容,不包含新添加内容 -------------输出------------------- 20 ----------- 92 疑是地上霜。 举头望明月, 低头思家乡。
总结:读文件中的内容,读到什么位置,光标就移到什么位置,此时如果写入的新的内容,默认直接追加到后面,光标移动到末尾,再此读文件从上次读文件后光标的位置,继续往后读,不包含新写入的内容
以上是关于文件操作—全局修改的主要内容,如果未能解决你的问题,请参考以下文章