[34.文件的加强读写模式] 零基础学python,简单粗暴

匿名 (未验证) 提交于 2019-12-02 22:54:36

概述

  • 字符流文件的四种基本读写模式:r/w/a/x,都是要么只读要么只写的,强读强写会报错‘’
  • 接下来要介绍的加强读写模式则是全部是可读可写的;
  • 它们分别是:读优先的r+,覆写优先的w+,追加优先的a+;
  • 它们之间的区别在于文件打开时,文件指针的位置何在;

读优先的加强模式r+

  • 文件打开时,文件指针位于0的位置,便于从头开始读取文件;
  • 因此我们称它是读优先的;
  • 接下来可读可写;
file = open(r"../res/doc/1.txt", "r+", encoding="utf-8") print("当前文件指针在%d" % (file.tell()))  # 可读可写 print(file.read(4)) print("当前文件指针在%d" % (file.tell()))  # 对于ASCII字符,每字符指针移动1位,对于汉字,每字符指针移动3位 print(file.read(4)) print("当前文件指针在%d" % (file.tell()))  # 继续移动文件指针到指定位置 file.seek(37) print(file.read(6))  # 写入内容 print("当前文件指针在%d" % (file.tell()))  # 54 file.seek(54)  # 写入之前应明确地seek到指定位置,否则会追加在末尾 file.write("全英文字母") file.close()

覆写优先的加强模式w+

  • 文件打开时,内容被清空,自然文件指针也就位于0的位置;
  • 这种模式先清空内容以便覆写,因此我们称它是覆写优先的;
  • 接下来可读可写;
file = open(r"../res/doc/1.txt", "w+", encoding="utf-8")  # 可读可写 file.write("锄禾日当午") print(file.tell()) file.seek(0) print(file.read()) file.close()




- 接下来可读可写;

file = open(r"../res/doc/1.txt", "a+", encoding="utf-8") print(file.tell())  # 可读可写 file.seek(0) print(file.read()) file.seek(15) file.write("\n编程真辛苦") file.close()

版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/pangzhaowen/article/details/80299631
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!