25.Python:控制文件指针操作seek


# 指针移动的单位都是以bytes/字节为单位
# 只有一种情况特殊:
# t模式下的read(n),n代表的是字符个数

# with open("a.txt", mode="rt", encoding="utf-8") as f:
# res = f.read(4)
# print(res)

# f.seek(n, 模式):n指的是移动的字节个数
# 模式:
# 0:参照物是文件的开头位置 可以在b/t模式下使用
# f.seek(9, 0)
# f.seek(3, 0) # 3

# 1:参照物是当前指针所在的位置 必须在b模式下使用
# f.seek(9, 1)
# f.seek(3, 1) # 12

# 2:参照物是文件末尾位置,应该倒着移动 必须在b模式下使用
# f.seek(-9, 2)
# f.seek(-3, 2)

# f.tell() 获取文件指针当前位置

# 示范
with open("c.txt", mode="rb") as f:
f.seek(9, 0)
f.seek(3, 0)
res = f.read()
print(f.tell())
print(res)


# seek应用
import time

with open('access.log', mode='rb') as f:
f.seek(0, 2) # 光标移动到文件末尾
while True:
line = f.readline()
if len(line) == 0:
time.sleep(0.3)
else:
print(line.decode('utf-8'))
posted @ 2021-06-25 12:38  SEPIA  阅读(125)  评论(0)    收藏  举报