欢迎光临
我们一起进阶

Python文件操作——文件的加强读写模式

扫码或搜索:沉默王二
发送 290992
即可立即永久解锁本站全部文章

概述

字符流文件的四种基本读写模式: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()

@追加优先的加强模式a+
– 文件打开时,文件指针位于末尾的位置,便于我们追加内容;
– 因此我们称它是追加优先的;
– 接下来可读可写;

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()

赞(1) 打赏
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

小白学堂,学的不止是技术,更是前程

关于我们免责声明

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏