文件操作—全局修改

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
疑是地上霜。
举头望明月,
低头思家乡。

总结:读文件中的内容,读到什么位置,光标就移到什么位置,此时如果写入的新的内容,默认直接追加到后面,光标移动到末尾,再此读文件从上次读文件后光标的位置,继续往后读,不包含新写入的内容

 

以上是关于文件操作—全局修改的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——git命令操作一个完整流程

文件操作—全局修改

VSCode自定义代码片段2——.vue文件的模板

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段——声明函数

VS code自定义用户代码片段snippet