with_open

打开方式

模式 可做操作 若文件不存在 是否覆盖
r 只读 error -
r+ 读写 error
w 只写 创建
w+ 读写 创建
a 只写 创建 是,尾部追加
a+ 读写 创建
wb 以二进制的字符串写入bytes 创建
rb 以二进制的方式读取字符串,返回bytes error -

相关常用函数

  • f.read() 返回读取内容
  • f.write(str) 写入字符串
  • f.tell() 返回读写指针位置
  • f.seek(0) 移动指针到开头
  • f.truncate() 清空文件内容

例子

with open("a.txt", "r", encoding="utf-8") as f:
    str1 = f.read()  # 读取文件中内容,返回格式str 
    print(str1)
with open("a.txt", "w", encoding="utf-8") as f:
    f.write("aaaaaaa")  # 在文件中以str格式写入"aaaaaaa"
with open("a.txt", "a", encoding="utf-8") as f:
    f.write("aaaaaaa")  # 在文件中以str格式将"aaaaaaa"追加至末尾
with open("a.txt", "rb", encoding="utf-8") as f:
    str1 = f.read()  # 读取文件中内容,返回格式二进制
    print(str1)
with open("a.txt", "wb", encoding="utf-8") as f:
    f.write("aaaaaaa")  # 在文件中以二进制格式写入"aaaaaaa"
with open("a.txt", "r+", encoding="utf-8") as f:
    str1 = f.read()  # 读取文件内容并将指针移到至末尾
    f.seek(0)  # 移动指针到开头,如果不移动指针,清除内容会失效
    f.truncate()  # 清除文件内容
    f.write("aaaaaaa")  # 在文件中以str格式重新写入"aaaaaaa"
    str2 = f.read()  # 读取到的是新内容
with open("a.txt", "w+", encoding="utf-8") as f:
    str1 = f.read()  # 读取文件内容但是返回是空,因为w+先覆盖文件,也就是说读到的是新的空文件并非是原有的文件
    f.write("aaaaaaa")  # 在文件中以str格式写入"aaaaaaa"
    str2 = f.read()  # 读取到的是新内容
  1. r+模式一开始光标在开始(0)处。当写入write时,操作方式为覆盖,若写入长度大于原文档长度,则全部覆盖掉,光标移到最后位;若写入长度小于原文档长度,
    则只覆盖掉光标之后写入长度大小的那部分原文档,光标移到写入长度的位置***读(write)时光标都是移动到相应的写入长度位后。读(read)操作之后光标都会移动到文档最后位。
  2. w+模式一开始光标在开始(0)处。当写入write时,操作方式位清空,不论写入长度大于还是小于原文档长度,光标都移到文档最后位(此时的文档最后位也就等于写入长度位后)
  3. a+模式,根据光标位置,write方法在光标位置后添加
posted @   雨快停了  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示