6. 写入文件

1️⃣w模式

  • 概述:w模式是写入模式,写入前会先截断文件(清空文件)。
  • 代码:
with open('b.txt', 'wt', encoding='utf-8') as file:
    file.write('你好')

2️⃣x模式

  • 概述:x模式是排它性创建,如果文件已存在,则创建失败。
  • 代码:
with open('demo.txt', 'xt', encoding='utf-8') as file:
    file.write('你好')

3️⃣a模式

  • 概述:打开文件用于写入,如果文件存在,则在文件末尾追加内容。
  • 代码:
with open('a.txt', 'at', encoding='utf-8') as file:
    file.write('你好')

7. flush方法

  • 概述:Python 写入文件时,并不是每写一次就立刻落盘,而是:先写到“缓冲区”里。
  • flush方法:把缓冲区中的数据,立刻写入到文件中。
  • 测试代码:
import time
with open('demo.txt', 'at', encoding='utf-8') as file:
    file.write('你好1')
    file.write('你好2')
    file.flush()
    time.sleep(10000)
    file.write('你好3')
    file.write('你好4')

8. 组合模式

1️⃣rt+模式

  • 概述:r模式可以读取,+模式可以更新(读取或写入),所以rt+模式可读可写。
  • 注意:r模式打开文件后,文件指针在起始位置。
  • 备注:由于t是默认值,所以rt+中的t可以省略。
  • 代码:
with open('a.txt', 'rt+', encoding='utf-8') as file:
    # seek(offset, whence)方法:用于改变文件对象指针的位置,参数说明如下:
    #   offset:偏移量,要移动多少距离
    #   whence:参考点,从哪里开始计算偏移,有三种取值:
    #       0:从文件开头计算(默认值)
    #       1:从当前位置计算
    #       2:从文件末尾计算
    #  注意:在文本模式下,不要随意去定位中文字符位置,否则可能破坏文件编码。
    file.seek(0, 0)
    file.write('你好')

2️⃣wt+模式

  • 概述:w模式可以写入,+模式可以用于更新(读取或写入),所以wt+模式可读可写。
  • 注意:w模式打开文件后,文件指针在起始位置,但write方法执行完后,指针在文件结束位置。
  • 备注:由于t是默认值,所以wt+中的t可以省略。
  • 代码:
with open('a.txt', 'wt+', encoding='utf-8') as file:
    file.write('你好')
    file.seek(0, 0)
    result = file.read()
    print(result)

3️⃣xt+模式

  • 概述:x模式可以写入,+模式可以用于更新(读取或写入),所以xt+模式可读可写。
  • 注意:x模式打开文件后,文件指针在起始位置。
  • 备注:由于t是默认值,所以xt+中的t可以省略。
  • 代码:
with open('demo3.txt', 'xt+', encoding='utf-8') as file:
    file.write('你好')
    file.seek(0, 0)
    result = file.read()
    print(result)

4at+模式

  • 概述:a模式可以追加内容,+模式可以用于更新(读取或写入),所以at+模式可读可写。
  • 注意:a模式打开文件后,文件指针在结束位置。
  • 备注:由于t是默认值,所以at+中的t可以省略。
  • 代码:
with open('a.txt', 'at+', encoding='utf-8') as file:
    file.write('你好')
    file.seek(0, 0)
    result = file.read()
    print(result)
© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发
头像-大赛人网
欢迎您留下宝贵的见解!
提交
头像-大赛人网

昵称

取消
昵称

    请登录后查看评论内容