Python 3 – 文件 seek() 方法
说明
方法 seek() 将文件的当前位置设置为偏移量。whence 参数是可选的,默认为 0,即绝对文件定位,其他值为 1 表示相对于当前位置定位,2 表示相对于文件结尾定位。
没有返回值。注意,如果文件是使用a或a+打开的进行附加写入,任何 seek() 操作将在下一次写入时被撤销。
如果文件仅以附加模式使用a打开进行写入,则此方法基本上是无操作,但对于启用读取的附加模式打开的文件(模式a+),它仍然是有用的。
如果使用t打开文本模式的文件,则仅告知() 引起的偏移量是合法的。使用其他偏移量会导致未定义的行为。
请注意,并非所有文件对象都可寻址。
语法
以下是 seek() 方法的语法−
fileObject.seek(offset[, whence])
参数
- offset − 这是文件中的读/写指针的位置。
-
whence − 这是可选的,默认为 0,表示绝对文件定位,其他值为 1 表示相对于当前位置定位,2 表示相对于文件结尾定位。
返回值
该方法不返回任何值。
示例
以下示例显示了 seek() 方法的用法。
假设'foo.txt'文件包含以下文本:
这是第一行
这是第二行
这是第三行
这是第四行
这是第五行
#!/usr/bin/python3
# 打开一个文件
fo = open("foo.txt", "r+")
print ("文件名: ", fo.name)
line = fo.readlines()
print ("读取内容: %s" % (line))
#再次将指针设置为开头
fo.seek(0, 0)
line = fo.readline()
print ("读取内容: %s" % (line))
# 关闭打开的文件
fo.close()
结果
当我们运行上面的程序时,它产生以下结果−
文件名: foo.txt
读取内容: ['这是第一行\n', '这是第二行\n', '这是第三行\n', '这是第四行\n', '这是第五行']
读取内容: 这是第一行