Python中的文件定位方式

 更新时间:2023年08月22日 10:16:20   作者:菇毒  
这篇文章主要介绍了Python中的文件定位方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Python文件定位

1. 文件定位

用 Python 的 open()打开一个文件后,都有一个指针指向文件的开始文职,read()函数读取一个文件后,指针将后移动相应的数目。

例子1:

2021-7-16

2. tell()函数

tell()函数可以让你知道文件內的当前位置(下次读写会发生在文件开头这么多字节之后)。

例子2:

2021-7-16

3. seek()函数

seek ( offest [ , from ] ) 函数改变当前文件的位置,offest 表示要移动的字节数,from 变量指定开始移动字节的参考位置。

若 from 参数被设置为 0 ,这意味着将文件的开头作为移动字节的参考位置;若设为1,则使用为当前的位置作为参考位置;若设置为2,那么该文件的末尾将作为参考位置。

例子3:

2021-7-16

python文件的定位读写

上文说到,文件的打开,关闭,追加,写入,读写。

但是我们没有实现从指定的位置进行读取啊。我想要1000行后面的东西,但也不能从开头读取吧,忒不方便哦,但是,强大的python还是有解决办法滴。

获取当前读写的位置(tell)

#打开一个已经存在的文件
f = open('test.txt','r')
read_r = f.read(3)
print('读取的数据是:',read_r)
#查看文件位置
position = f.tell()
print('当前文件位置:',position)
read_r = f.read(3)
print('读取的数据是:',read_r)
position = f.tell()
print('当前文件位置:',position)
f.close()

用**tell()**的方法可以查看当前在文件中所读取数据的位置

定位到某个位置seek(offset,from)

  • offset:偏移量
  • from:方向
  • 0:表示文件开头
  • 1:表示当前位置
  • 2:表示文件末尾
# 打开一个已经存在的文件
f = open("test.txt", "r")
str = f.read(30)
print "读取的数据是 : ", str
# 查找当前位置
position = f.tell()
print "当前文件位置 : ", position
# 重新设置位置
f.seek(5,0)
# 查找当前位置
position = f.tell()
print "当前文件位置 : ", position
f.close()

在代码中,读取了内容后,读出当前的位置,让后在重新设置位置,从重新设置的位置 开始在次读取。

这就是实现了定位去读写。

注意:

在文本文件中,没有使用b模式选项打开的文件,只允许从文件头开始计算相对位置,从文件尾计算时就会引发异常。就是说,没有用二进制打开的,只允许从开头进行计算位置。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python实现序列化及csv文件读取

    Python实现序列化及csv文件读取

    这篇文章主要介绍了Python实现序列化及csv文件读取,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • 解决Django部署设置Debug=False时xadmin后台管理系统样式丢失

    解决Django部署设置Debug=False时xadmin后台管理系统样式丢失

    这篇文章主要介绍了解决Django部署设置Debug=False时xadmin后台管理系统样式丢失的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 如何使用python检测某网盘链接是否有效

    如何使用python检测某网盘链接是否有效

    这篇文章主要为大家介绍了使用python检测某网盘链接是否有效的方法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • 使用python如何提取JSON数据指定内容

    使用python如何提取JSON数据指定内容

    这篇文章主要介绍了使用python如何提取JSON数据指定内容,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Tortoise-orm信号实现及使用场景源码详解

    Tortoise-orm信号实现及使用场景源码详解

    这篇文章主要为大家介绍了Tortoise-orm信号实现及使用场景源码详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 关于DataFrame数据的查询和编辑

    关于DataFrame数据的查询和编辑

    在使用pandas处理DataFrame时,可通过列索引标签获取列数据,行数据的获取可以利用行索引或位置切片,如iloc和loc方法,增加数据时,可通过append方法增加行,直接赋值增加列,删除数据则通过drop方法,通过设置axis参数确定是删除行还是列
    2024-09-09
  • Python生成扫雷地图的方法

    Python生成扫雷地图的方法

    这篇文章主要为大家详细介绍了Python生成扫雷地图的方法,并非游戏实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • python中第三方库lxml库的最新详细安装步骤

    python中第三方库lxml库的最新详细安装步骤

    这篇文章主要给大家介绍了关于python中第三方库lxml库的最新详细安装步骤,lxml是一种使用Python编写的库,可以迅速、灵活地处理 XML,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • python中zip()函数遍历多个列表方法

    python中zip()函数遍历多个列表方法

    在本篇文章里小编给大家整理的是一篇关于python中zip()函数遍历多个列表方法,对此有兴趣的朋友们可以学习下。
    2021-02-02
  • Python中基础的socket编程实战攻略

    Python中基础的socket编程实战攻略

    Python拥有内置的socket模块,可以用简洁明了的代码来进行socket通信操作,这里我们就为大家整理了一份Python中基础的socket编程实战攻略,需要的朋友可以参考下.
    2016-06-06

最新评论