Python seek和tell
在Python中,seek()
和tell()
是用于文件处理的两个方法。
seek()
用于更改文件对象的位置,它有两个参数:
- offset
:需要移动的字节数(偏移量),可以是正数或负数。
- from_what
:可选参数,默认值为0(表示从文件开头计算偏移量),也可以设为1(表示从当前位置计算偏移量),或者2(表示从文件末尾计算偏移量)。
例如,如果想将文件指针移动到文件开头的第5个字节位置,可以使用seek(4, 0)
。
tell()
方法用于获取当前文件指针的位置(即当前位置的偏移量)。它不带任何参数。
下面是一个例子,演示如何使用seek()
和tell()
方法:
# 打开一个文件
file = open('data.txt', 'r')
# 读取前5个字符
data = file.read(5)
print('读取的数据:', data)
# 获取当前位置
position = file.tell()
print('位置:', position)
# 移动文件指针到位置10
file.seek(9)
# 读取前5个字符
data = file.read(5)
print('读取的数据:', data)
# 关闭文件
file.close()
这个例子打开一个名为data.txt
的文件,首先读取前5个字符,并确定当前位置。然后,使用seek()
方法将文件指针移动到位置10,并再次读取前5个字符。最后关闭文件。
注意:seek()
方法对于文本文件和二进制文件有不同的行为。在文本文件中,seek()
和tell()
方法使用的是字节偏移量,而在二进制文件中,它们使用的是字节偏移量。