zoukankan      html  css  js  c++  java
  • 控制文件指针移动

    1.指针移动
    f.seek(offset,whence)***

    offset代表文件的指针的偏移量,单位是字节bytes
    whence代表参考物,有三个取值****
    0:参照文件的开头
    with open(r"C:UsersLENOVOPycharmProjectsuntitled2.txt","r+t",encoding = "utf-8") as f:
    f.read()
    print(f.seek(18,0)) # 18
    print(f.tell()) # 18 找到光标所在的位置

    1:参照当前文件指针所在位置
    with open(r"C:UsersLENOVOPycharmProjectsuntitled2.txt","r+b") as f:
    data = f.read()
    print(data.decode("utf-8"))
    print(f.seek(8,1))
    print(f.tell())

    2: 参照文件末尾
    ps:快速移动到文件末尾f.seek(0,2) ***

    强调:其中whence=1和whence=2只能在b模式下使用***

    下面是不同参考物指针的情况(0:参考开头,1:参考指针当前位置 2:参考指针末尾)
    f=open('c.txt',mode='rt',encoding='utf-8')
    # f.seek(9,0) # 从开头开始统计
    print(f.tell()) # 每次统计都是从文件开头到当前指针所在位置
    # print(f.readline())

    f.close()


    f=open('c.txt',mode='rb')
    f.readline()
    f.seek(6,1) # 从光标所在的位置统计
    print(f.readline().decode('utf-8'))
    print(f.tell())
    f.close()


    f=open('c.txt',mode='rb')
    f.seek(-9,2) # 从末尾向前开始统计
    print(f.readline().decode('utf-8'))
    print(f.tell())
    f.close()



    了解(**)
    只有在t模式下的read(n),n代表的是字符个数,除此之外其他但凡涉及文件指针的移动都是以字节为单位的
    f=open(r'C:UsersLENOVOPycharmProjectsuntitled2.txt',mode='rt',encoding='utf-8')
    print(f.read(3))
    f.close()

    f=open(r'C:UsersLENOVOPycharmProjectsuntitled2.txt',mode='rb',)
    print(f.read(3).decode('utf-8')) # 读三个字节
    f.close()


    ab a+b r+b

    截断,
    f=open(r'C:UsersLENOVOPycharmProjectsuntitled2.txt',mode='at')
    f.truncate(9) # 参照物永远是文件开头,从9个字节处开始截断,所以即使是追加模式,也是从头开始移动光标
    f.close()



  • 相关阅读:
    看我这篇就够了!os.system批量执行py文件!!!!
    关于python文件显示为空白文件图标的解决办法
    Python Windows下整体项目环境迁移
    python + selenium + firefox 自定义配置文件启动浏览器
    Selenium OSError: [WinError 193] %1 不是有效的 Win32 应用程序
    redis安装后,输入redis-server.exe redis.windows.conf无法启动
    MongoDB安装
    安装tesserocr pillow报错
    【流水账】2021-07-09 Day-29
    【流水账】2021-07-08 Day-28
  • 原文地址:https://www.cnblogs.com/Roc-Atlantis/p/9140139.html
Copyright © 2011-2022 走看看