文件操作指针
文章目录
- 文件操作指针
- 1. 文件指针的概念和作用:
- 2. 移动文件指针的位置:
- 3. 获取当前文件指针的位置:
- 4. 文件指针的影响:
文件操作指针是在进行文件读写操作时用于标识当前位置的一个概念。它记录了文件中读写操作将要发生的位置,可以通过移动指针来改变读写的位置。以下是关于文件操作指针的知识点以及相关的代码示例:
1. 文件指针的概念和作用:
- 文件指针是一个表示文件当前位置的指针,它指向文件中将要进行读写操作的位置。
- 通过文件指针,可以控制读写操作在文件中的具体位置,从而实现精确的读写控制。
2. 移动文件指针的位置:
- 使用
seek(offset, whence)
方法来移动文件指针的位置,其中offset
表示偏移量,whence
表示相对位置的基准。 whence
参数可选值:
-
0
:从文件开头计算偏移量(默认值)。 -
1
:从当前位置计算偏移量。 -
2
:从文件末尾计算偏移量。
# 移动文件指针的位置示例
with open("file.txt", "r") as file:
content = file.read(10) # 读取前10个字符
print(content) # 输出读取的内容
file.seek(5) # 将文件指针移动到第6个字符处
content = file.read(5) # 从第6个字符处读取5个字符
print(content) # 输出读取的内容
-------------------------------
# 不支持往回移动
with open("file.txt", "r") as file:
content = file.read(10) # 读取前10个字符
print(content) # 输出读取的内容
file.seek(5) # 将文件指针移动到第6个字符处
file.seek(-3) # 不支持往回移动
# 抛出异常 ValueError: negative seek position -3
content = file.read(5) # 从第6个字符处读取5个字符
print(content) # 输出读取的内容
-----------------------------
# “往回移动”的方法
with open("file.txt", "r") as file:
file.seek(0, 2) # 将文件指针移动到文件末尾
# 文末往回读取10个字符
position = file.tell() # 获取当前文件指针位置
print(position) #假设有28个字符,此处输出28
file.seek(position-10) #往回移动10个字符
position=file.tell()
print(position) # 假设有28个字符,这里输出18
3. 获取当前文件指针的位置:
- 使用
tell()
方法可以获取当前文件指针的位置,返回一个表示当前位置的整数值。
# 获取当前文件指针的位置示例
with open("file.txt", "r") as file:
content = file.read(10)
print(content)
position = file.tell() # 获取当前文件指针的位置
print("Current position:", position)
4. 文件指针的影响:
- 读取操作:文件指针决定了从文件中读取的位置,读取操作将从指针位置开始读取。
- 写入操作:文件指针决定了写入的位置,写入操作将在指针位置处写入内容,并将指针位置后移。
# 文件指针的影响示例
with open("file.txt", "r+") as file:
content = file.read(10)
print(content) # 输出读取的内容
file.write("New Content") # 写入新内容
file.seek(0) # 将文件指针移动到开头
content = file.read() # 从开头读取整个文件内容
print(content) # 输出读取的内容