您可以将文件视为一个字节序列(至少在您使用 将文件作为二进制文件打开时是这种情况mode='rb'
),类似于bytearray
存储在磁盘上的 a。当您第一次使用 打开文件时mode='rb'
,您当前位于或“指向”文件的开头,偏移量为 0,这意味着如果您发出 a read
for n
bytes 您将读取文件的第一个 n
字节(假设文件至少有n
字节的数据)。读取后,您的新文件位置位于 offset n
。因此,如果您只发出连续read
调用,您将按顺序读取文件。
方法tell
返回您当前的“位置”,仅表示您在文件中的当前偏移量:
with open('myfile', 'rb') as f:
data = f.read(12) # after this read I should be at offset 12
print(f.tell()) # this should print out 12
方法seek
允许您更改文件中的当前位置:
import os
with open('myfile', 'rb') as f:
# read the last 12 bytes of the file:
f.seek(-12, os.SEEK_END) # seek 12 bytes before the end of the file
data = f.read(12) # after this read I should be at the end of the file