首页 > 移动平台 > 详细

文件内指针移动

时间:2018-09-21 22:31:01      阅读:177      评论:0      收藏:0      [点我收藏+]
# _*_ 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=‘‘)

文件内指针移动

原文:https://www.cnblogs.com/OutOfControl/p/9688631.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!