文件内指针移动

# _*_ coding: utf-8 _*_

# 大前提:
# 文件内指针的移动是按Bytes为单位的,
# 唯读t模式下的read读取内容个数是以字符为单位

# with open(‘a.txt‘,mode=‘rt‘,encoding=‘utf-8‘) as f:
# data = f.read(3) #三个字符
# print(data)
#
# with open(‘a.txt‘,mode=‘rb‘) as f:
# data = f.read(3)
# print(data)
# print(data.decode(‘utf-8‘))

# f.seek(指针移动的Bytes数,模式控制):控制文件指针的移动
# 模式控制:
# 0(t\b): 默认的模式,该模式代表指针移动的字节数是以文件开头为参照的
# 1(b): 该模式代表指针移动的字节数是以当前所在的位置为参照的
# 2(b): 该模式代表指针移动的字节数是以文件末尾的位置为参照的
# 强调:其中0模式可以在t或者b模式使用,而1跟2模式只能在b模式下用

# f.tell()查看文件指针当前距离文件开头的位置

# 0模式详解
# with open(‘a.txt‘, mode=‘rt‘, encoding=‘utf-8‘) as f:
# f.seek(7, 0) # t模式下的0模式 就是按字符是以文件开头为参照的
# print(f.tell())
# print(f.read())

# with open(‘a.txt‘, mode=‘rb‘) as f:
# f.seek(3,0)
# print(f.tell())
# print(f.read().decode(‘utf-8‘))

# with open(‘a.txt‘,mode=‘rt‘,encoding=‘utf-8‘) as f:
# f.seek(7,0)
# print(f.read())

# 1模式详解
# with open(‘a.txt‘,mode=‘rb‘) as f:
# f.seek(3,1)
# print(f.tell()) #查看文件指针当前距离文件开头的位置
# f.seek(4,1)
# print(f.tell())
# print(f.read().decode(‘utf-8‘))

# 2模式详解
# with open(‘a.txt‘, mode=‘rb‘) as f:
# f.seek(-10,2) #有换行符 1个Bytes
# data = f.read()
# print(data.decode(‘utf-8‘))

with open(‘access.log‘,mode=‘rb‘) as f:
f.seek(0,2)
while True:
line = f.readline()
if len(line) == 0:
continue
else:
print(line.decode(‘utf-8‘),end=‘‘)

文件内指针移动

上一篇:App测试


下一篇:WPF 跨应用程序域的 UI(Cross AppDomain UI)