Python正课27 —— 文件高级操作:指针的移动

本文内容皆为作者原创,如需转载,请注明出处:https://www.cnblogs.com/xuexianqi/p/12503359.htmll

一:指针

指针移动的单位都是以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'))
posted @ 2020-03-16 13:40  轻描丨淡写  阅读(432)  评论(0编辑  收藏  举报