python文件处理指针的移动

控制文件指针移动
with open('a.txt',mode='rt',encoding='utf-8')as f:
    res=f.read(4)
    print(res)

 

强调:只有t模式下read(n)中的n表示的是字符个数,其他都是以字节为单位。

with open('a.txt',mode='rb')as f:
    res=f.read(3)
    print(res.decode('utf-8'))

 

f.seek():指针移动    以字节为单位

三种模式:

  • 0(默认):参照文件开头

  • 1                :参照指针当前位置

  • 2                :参照文件末尾

I 0模式:参照文件开头

      只有0模式既可在t下用也可在b模式下用。1.2只能在b模式下用

with open('a.txt',mode='rt',encoding='utf-8') as f:
    f.seek(3, 0)
    print(f.tell()) #显示指针位置
    print(f.read())
#参照文件开头指针位置向后移动3个字节

 

II 1模式:参照指针当前位置

with open('a.txt',mode='rb')as f:
    f.read(3) #先读三个字节,指针移动到3
    f.seek(3, 1)#1以指针当前位置再移动3位
    print(f.read().decode('utf-8'))

 

III 2模式:参照文件末尾

with open('a.txt',mode='rb')as f:
    f.seek(-5,2) #参照文件末尾,指针移动到-5
    print(f.tell())
    print(f.read().decode('utf-8'))

 

小练习:

写一个程序监测文件中新增内容:

with open('access.log',mode='at',encoding='uft-8')as f:
    f.write('时间  内容 登陆名\n')  #先写一个程序:该程序就是被监测程序
import time  #导入时间模块,刷新时间
with open('access.log',mode='rb')as f:
    f.seek(0, 2)  #将指针移到文件末尾
    while True:   #循环一行行读取文件
        line = f.readline()
        if len(line) == 0:#判断文件长度是否为0,为0表示文件未写入
            time.sleep(1)
        else:#如果有文件写入则会打印
            print(line.decode('utf-8'), end='')

 

转载于:https://www.cnblogs.com/5j421/p/10027668.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值