文件指针的移动基本上都是以bytes为单位,但是t模式下的read()是以字符为单位
一.模式
名称 | 作用 |
---|---|
0 | 以文件开头为参照,t和b模式均适用 |
1 | 以当前文件指针位置为参照,b模式适用 |
2 | 以文件末尾为参照,b模式适用,移动单位应为负数 |
二.常用方法
方法 | 作用 |
---|---|
f.seek(距离,模式) | 操纵文件指针移动 |
f.tell() | 获取文件指针的位置 |
三.示例代码
现有一个a.txt文件,内容如下:
1.以t模式打开文件,将指针移动到5后边
with open("a.txt",mode="rt",encoding="UTF-8") as f:
f.seek(17,0)
2.以b模式打开文件,将指针移动到第二个恍后边
with open("a.txt",mode="rb") as f:
f.seek(24,0) #以文件开头为参照,向后移动24个字节
print(f.read().decode("UTF-8"))
或
f.seek(24,1) #以当前指针位置(文件开头)为参照,向后移动24个字节
print(f.read().decode("UTF-8"))
或
f.seek(-8,2) #以文件末尾为参照,向前移动8个字节
print(f.read().decode("UTF-8"))