python文件使用问题

请问覆盖写模式怎么整,我这个怎么更改到原来的文件,这个按w 为什么直接把文件清空

img

img

把'r'改为'w+'
不写+号不可读,读到的是空写入也是空,就把文件清空了

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7646659
  • 这篇博客你也可以参考下:python的正则表达式'\w'居然可以匹配中文
  • 除此之外, 这篇博客: Python文件模式及操作详解中的 六、w 模式的使用 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • w是只写模式:在文件不存在时创建空文档;文件存在时清空文件,文件指针跑到文件开头。

    with open('b.txt',mode='w',encoding='utf-8') as f:
        f.write('123\n')
        f.write('1234\n') 
        f.write('12345\n')
    

    在文件不关闭的情况下,连续的写入,后写的内容一定跟在前写内容的后面。

    如果重新以w模式打开文件,则会清空文件内容。

  • 以下回答由chatgpt基于相关博客总结生成:

    针对问题,我的解决方案如下:

    1. 若要使用覆盖写模式,需要使用模式参数为 "w+" 的打开方式,这样写入数据后可以返回到文件起始位置,方便后续操作。

    示例代码:

    f = open("filename.txt", "w+")
    f.write("data")
    f.seek(0)  # 将文件指针移到文件开头位置
    f.write("new data")  # 覆盖写入新数据
    f.close()
    
    1. 若要更改到原来的文件,可以使用模式参数为 "a" 的打开方式,即以追加方式打开文件。

    示例代码:

    f = open("filename.txt", "a")
    f.write("new data")  # 在文件末尾追加新数据
    f.close()
    

    希望这些代码可以帮到你,祝编码愉快!