文件高级操作---指针的移动

一:指针

指针移动的单位都是以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指的是移动的字节个数

1.模式0:参照物是文件开头位置

f.seek(9,0)
f.seek(3,0) # 3

2.模式1:参照物是当前指针所在位置

f.seek(9,1)
f.seek(3,1) # 12

3.模式2:参照物是文件末尾位置,应该倒着移动

f.seek(-9,2) # 3
f.seek(-3,2) # 9

强调:只有0模式可以在t下使用,1、2必须在b模式下用

三:示范

with open('aaa.txt',mode='rb') as f:
    f.seek(9,0)
    f.seek(3,0) # 3
    # print(f.tell())
    f.seek(4,0)
    res=f.read()
    print(res.decode('utf-8'))
with open('aaa.txt',mode='rb') as f:
    f.seek(9,1)
    f.seek(3,1) # 12
    print(f.tell())
with open('aaa.txt',mode='rb') as f:
    f.seek(-9,2)
    # print(f.tell())
    f.seek(-3,2)
    # print(f.tell())
    print(f.read().decode('utf-8'))
原文地址:https://www.cnblogs.com/2722127842qq-123/p/12510479.html