前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python之文件指针定位

python之文件指针定位

作者头像
jiankang666
发布2022-12-05 13:43:50
8530
发布2022-12-05 13:43:50
举报
文章被收录于专栏:java基础笔记

博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏。


一、背景

  Python 是一门易于学习、功能强大的编程语言。它提供了高效的高级数据结构,还能简单有效地面向对象编程。Python 优雅的语法和动态类型以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的理想语言。下面我们来介绍一下python的文件指针定位相关知识。


二、获取当前读写位置

  在读写文件的过程中,如果想知道当前文件位置指针的位置,可以通过调用tell()方法来获取。tell()方法返回文件的当前位置,即文件位置指针当前位置。其语法格式如下:

代码语言:javascript
复制
文件对象名.tell()

  例:使用tell()方法获取文件当前的读写位置。

代码语言:javascript
复制
with open('testfile.txt','r') as file:    #以只读方式打开名为“testfile.txt”的文件
    line = file.read(8)        #读取前8个字节
    print(line)            #输出前8个字节
    p = file.tell()            #获取指针当前位置
    print('当前位置:',p)        #输出当前位置
    line = file.read(4)        #继续读取4个字节
    print(line)            #输出读取到的数据
    p = file.tell()            #获取指针当前位置
    print('当前位置:',p)         #输出当前位置

  结果如下。


三、定位到某个位置

  如果在读写文件的过程中,需要从指定的位置开始读写操作,就可以使用seek()方法实现。seek()方法用于移动文件位置指针到指定位置,其语法格式如下:

代码语言:javascript
复制
文件对象名.seek(offset[,whence])

  例:创建名为“seek.txt“的文件,输入“This is a test!”并存放进文件中,读取单词“test”并输出到终端。

代码语言:javascript
复制
filename = input('请输入新建的文件名:')        #输入文件名
with open(filename,'w+') as file:            #新建文件并以读写方式打开
    file.write('This is a test!')            #将字符串输入到文件
    file.seek(10)                    #指针移到从头开始的第10个字符处
    con = file.read(4)                #读取4个字符给con
    print(con)                    #输出

  结果如下。

  以文本文件格式打开文件时,seek()方法中的whence参数取值只能是0,即只允许从文件开始位置计算偏移量。若想从当前位置或文件末尾位置计算偏移量,需要使用“b”模式(二进制格式)打开文件。

  例:读取“seek.txt”文件中倒数第2个字符。

代码语言:javascript
复制
with open('seek.txt','rb') as file:        #新建文件并以读写方式打开
    file.seek(-2,2)                #将文件位置指针定位到倒数第2个字符处
    con = file.read(1)            #读取1个字符给con
    print(con)                #输出

  结果如下。

在这里插入图片描述


四、参考

1、廖雪峰的官网 2、python官网 3、Python编程案例教程


五、总结

  以上就是就是关于Python的文件指针定位的相关知识,可以参考一下,觉得不错的话,欢迎点赞、收藏、在看,欢迎微信搜索关注java基础笔记,后面会不断更新相关知识,大家一起进步。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java基础笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、背景
  • 二、获取当前读写位置
  • 三、定位到某个位置
  • 四、参考
  • 五、总结
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档