python3文件对象方法seek()心得
本文环境: Windows 10 专业版 64 位 + Thonny 3.2.6
概述
python3中文件对象的方法 seek() 用于移动文件读写指针到指定位置。
语法
file_object.seek(offset[, whence])
参数说明
file_object 是文件对象,通常是通过函数 open() 返回的。
offset 是一个整数,表示文件读写指针要从 whence 指定的位置移动的数量。
正数是从文件读写指针向文件尾部移动。负数从文件读写指针向文件头部移动。负数只能用于 b 字节模式打开的文件对象。
whence 是一个可选参数,默认值为 0,表示从文件开头开始计算 offset 偏移量 。
whence 的其他可选值有:
0:表示文件开头(默认值)。
1:表示当前位置。
2:表示文件结尾。
实例
实例环境:
e:\test\test-en.txt
test-en.txt 内容:
0123456789abcdeABCDE
test-en.txt 编码:utf-8
seek(0) seek(0,0) 移动指针到文件头
上机代码:
# 文件对象的方法 seek(0) 训练
# 使用 r+ 读写模式打开文件
file_object = open("test-en.txt","r+")
print("r+ 读写模式打开文件后,文件读写指针在文件头:",file_object.tell())
# 使用文件对象的方法 read() 读取文件内容
contents = file_object.read()
print("第1次 read() 文件内容后的结果:\n",contents)
print("read() 读取文件内容后,文件读写指针在文件末尾:",file_object.tell())
print("由于文件指针在文件末尾,所以无法再次读取出文件内容")
contents = file_object.read()
print("第2次 read() 文件内容后的结果:\n",contents)
print("使用文件对象的方法 seek(0) 把文件读写指针移动到文件头")
file_object.seek(0)
print("显示 file_object.seek(0) 后的文件读写指针的位置:",file_object.tell())
contents = file_object.read()
print("第3次把文件读写指针调整到文件头后,\nread() 文件内容的结果:\n",contents)
print("""seek(0) 是 seek(0,0) 省略了参数 whence ,whence 省略时默认值是0
seek(0,0) offset = 0 whence = 0
offset = 0 :文件读写指针从 whence 指定的位置向文件尾部移动的0字节。
whence = 0 : 文件读写指针移动到文件头。
""")
#关闭文件
file_object.close()
结果:
>>> %Run test.py
r+ 读写模式打开文件后,文件读写指针在文件头: 0
第1次 read() 文件