Python中的文件定位方式
作者:菇毒
这篇文章主要介绍了Python中的文件定位方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
Python文件定位
1. 文件定位
用 Python 的 open()打开一个文件后,都有一个指针指向文件的开始文职,read()函数读取一个文件后,指针将后移动相应的数目。
例子1:
2. tell()函数
tell()函数可以让你知道文件內的当前位置(下次读写会发生在文件开头这么多字节之后)。
例子2:
3. seek()函数
seek ( offest [ , from ] ) 函数改变当前文件的位置,offest 表示要移动的字节数,from 变量指定开始移动字节的参考位置。
若 from 参数被设置为 0 ,这意味着将文件的开头作为移动字节的参考位置;若设为1,则使用为当前的位置作为参考位置;若设置为2,那么该文件的末尾将作为参考位置。
例子3:
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模式选项打开的文件,只允许从文件头开始计算相对位置,从文件尾计算时就会引发异常。就是说,没有用二进制打开的,只允许从开头进行计算位置。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。