码迷,mamicode.com
首页 > 其他好文 > 详细

文件操作—全局修改

时间:2018-08-10 21:14:05      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:odi   img   学习   line   int   输出   replace   不包含   sed   

操作的文件内容

技术分享图片
床前明月光,
疑是地上霜。
举头望明月,
低头思家乡。
文件内容

全局修改代码

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("\n好好学习")#默认追加到最后面
    print("-----------")
    print(f.tell())#此时的光标是在末尾
    print(f.read())#从第一行的末尾处的继续读文件的内容,不包含新添加内容
-------------输出-------------------
20
-----------
92
疑是地上霜。
举头望明月,
低头思家乡。

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

 

文件操作—全局修改

标签:odi   img   学习   line   int   输出   replace   不包含   sed   

原文地址:https://www.cnblogs.com/yan-long/p/9457048.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!