文件内指针移动

Posted OutOfControl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件内指针移动相关的知识,希望对你有一定的参考价值。

# _*_ 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=‘‘)

以上是关于文件内指针移动的主要内容,如果未能解决你的问题,请参考以下文章

day10函数与模块

o7 文件和函数

文件指针,函数

C多级指针与多维数组

控制文件指针的移动

在不移动文件指针的情况下检查文件指针是不是已达到 EOF?