老男孩教育专注IT教育10余年,只培养IT技术精英

全国免费咨询电话(渠道合作):400-609-2893

Python入门学习教程之seek与tell方法!

老男孩IT教育

常见问题

2021年7月20日 17:59

文件指针用于标明文件读写的起始位置。使用open()函数打开文件并读取文件中的内容时,总是会从文件的第一个字符(字节)开始读起,而借助seek函数则可以移动文件指针的位置,在通过read()和write()函数读写指定位置的数据。而tell()函数则是获取光标当前位置。

  文件指针用于标明文件读写的起始位置。使用open()函数打开文件并读取文件中的内容时,总是会从文件的第一个字符(字节)开始读起,而借助seek函数则可以移动文件指针的位置,在通过read()和write()函数读写指定位置的数据。而tell()函数则是获取光标当前位置。

  当向文件中写入数据时,如果不是文件的尾部,写入位置的原有数据不会自行向后移动,新写入的数据会将文件中处于该位置的数据直接覆盖掉。

  seek()函数用于将文件指针移动至指定位置,该函数的语法格式如下:

file.seek(offset[, whence])

  其中,各个参数的含义如下:

  whence作为可选参数,用于指定文件指针要放置的位置,该参数的参数值有3个选择:0代表文件头(默认值)、1代表当前位置、2代表文件尾。

  offset:表示相对于whence位置文件指针的偏移量,正数表示向后偏移,负数表示向前偏移。例如,当whence==0&&offset==3(即seek(3,0)),表示文件指针移动至距离文件开头处3个字符的位置;当whence==1 &&offset==5(即 seek(5,1)),表示文件指针向后移动,移动至距离当前位置5个字符处。

# hi friends,welcome to oldboy!

f = open("hi",mode="rb")
print(f.tell()) # 0
print(f.read(3)) # b'hi '
print(f.tell()) # 3
f.seek(3,1)
print(f.read(1)) # b'e'

  注意,当 offset 值非 0 时,Python 要求文件必须要以二进制格式打开,否则会抛出 io.UnsupportedOperation 错误。

  老男孩IT教育针对企业用人需求专门设置定制化Python课程,学员无基础也可以学习,所有课程都是老师团队研发成立,引用了大型企业项目实战教学,全程采用七位一体授课模式,让学员边学边积累经验。

  推荐阅读:

  Python面向对象之封装!老男孩Python学习内容

  Python常用数据分析库有哪些?Python学习班!

  Python常用数据分析库有哪些?Python学习班!

本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。