要点:
指针的移动都是以bytes为单位的,但是只有在t模式下的read(n),这里的n代表的是字符个数。
with open('aaa.txt',mode='rt',encoding='utf-8') as f:
res=f.read(4)
print(res)
# 读取四个字符
一、f.seek(n,模式):n指的是移动的字节个数
# 模式0:参照物是文件开头位置
f.seek(9,0)
f.seek(3,0) # 3
# 模式1:参照物是当前指针所在位置
f.seek(9,1)
f.seek(3,1) # 12
# 模式2:参照物是文件末尾位置,应该倒着移动
f.seek(-9,2) # 3
f.seek(-3,2) # 9
# 强调:只有0模式可以在t下使用,1、2必须在b模式下用
二、f.tell()获取文件指针当前位置
with open('aaa.txt',mode='rb') as f:
f.seek(9,0)
f.seek(3,0) # 3
print(f.tell())
# b模式下先将指针从开头移到第三个字节,然后开始读取并用utf-8# 解码。
with open('aaa.txt',mode='rb') as f:
f.seek(3,0)
res=f.read()
print(res.decode('utf-8'))
ps:0,1模式下的指针移动不受文件长度影响,2模式下指针最多可以移到0