码迷,mamicode.com
首页 > 移动开发 > 详细

文件内指针移动

时间:2018-09-21 23:07:17      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:距离   就是   ==   指针   tin   模式   读取   lin   文件   

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

文件内指针移动

标签:距离   就是   ==   指针   tin   模式   读取   lin   文件   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!