• 文件操作part3 文件内指针的移动


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

    t模式下读取文件:

    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)#读取的是三个Bytes
        print(data.decode('utf-8'))
     f.seek(指针移动的字节数,模式控制): 控制文件指针的移动

      参数二:

          0: 默认的模式,该模式代表指针移动的字节数是以文件开头为参照的

          1: 该模式代表指针移动的字节数是以当前所在的位置为参照的

          2: 该模式代表指针移动的字节数是以文件末尾的位置为参照的
     强调:其中0模式可以在t或者b模式下使用,而1跟2模式只能在b模式下使用

    f.tell() 返回现在指针距离当前文件开头的位置

    0模式的详解:
    t模式下:
    with open('a.txt',mode='rt',encoding='utf-8') as f:
        f.seek(4,0)#从开头移动了四个字节
        print(f.tell())
        print(f.read())

    b模式下:

    with open('a.txt',mode='rb') as f:
        # f.seek(4,0)
        f.seek(2,0)
        print(f.tell())
        print(f.read().decode('utf-8'))#字节读取不完整,不能使用utf-8解码报错

    1模式的详解(只能在b模式下)

    with open('a.txt',mode='rb') as f:
        f.seek(3,1)#从当前位置移动三个字节(当前位置是文件开头)
        print(f.tell())
        f.seek(4,1)#(从上次指针位置移动4个字节)
        print(f.tell())
        print(f.read().decode('utf-8'))
    2模式详解
    with open('a.txt',mode='rb') as f:
        f.seek(-9,2)#从文件末尾,向前移动9个字节
        data=f.read()
        print(data.decode('utf-8'))

    实现文件新写入文件监控;

    run.py 添加文件内容

    import time
    with open(r'b.txt',mode='a',encoding='utf-8') as f:
        f.write('%s 下雨了
    '%time.strftime('%Y-%m-%d %X'))

    检测.py  检测

    with open(r'b.txt',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='')
     
  • 相关阅读:
    SQL Server中的执行引擎入门
    SQL Server复制入门(一)复制简介
    Django 代码片断收集(持续更新)
    今天思路有点乱,随便记一点关于 xmlrpc 的
    PIL 学习笔记(1)
    Django newforms
    在 Django 的 View 中利用 function decorator 可实现一定程度的代码重用
    今天在 Linux 上顺利编译 PIL 1.1.6 成功
    用 PIL 写了个简单的缩略图生成程序
    [转贴] 中药内外合治急慢性鼻窦炎
  • 原文地址:https://www.cnblogs.com/msj513/p/9686131.html
Copyright © 2020-2023  润新知