2. 文件的随机读写
什么是文件的随机读写
文件的随机读写是指能够在文件的任意位置直接读取或写入数据,而无需按顺序从头到尾遍历内容。
随机读写通过移动文件的读写位置来快速定位到指定位置,实现高效的数据操作。
应用场景
- 需改部分内容。
- 高效查询。
- 二进制文件处理。
- 日志追加。
随机读写的方法
方法
说明
file.tell()
返回当前读写位置(相对于文件头)
file.seek(offset, whence=0)
设置文件的读写位置
file.seek()的参数
- offset-偏移量
- 大于0的数代表向文件末尾方向移动。
- 小于0的数代表向文件头方向移动。
- whence- 相对于哪里
- 0:代表从文件头开始偏移。
- 1:代表从当前读写位置开始偏移。
- 2:代表从文件尾开始偏移。
示例:
文件 b.txt
内容如下:
>>> f = open('b.txt', 'rb')
>>> f.tell()
0
>>> f.read(3)
b'abc'
>>> f.tell()
3
>>> f.read()
b'de\nABCDE\n123###xxx'
>>> f.tell()
21
>>> f.seek(2, 0)
2
>>> f.read(3)
b'cde'
>>> f.tell()
5
文件对象的其他方法
方法
说明
file.flush()
把写入文件对象的缓存内容写入到磁盘
file.readable()
判断这个文件是否可读,可读返回True,否则返回False
file.writeable()
判断这个文件是否可写,可写返回True,否则返回False
file.seekable()
返回这个文件对象是否支持随机定位
file.truncate(pos = None)
剪掉自pos位置之后的数据,返回新的文件长度