-1

我目前正在通过 Zed Shaw 的书 Learning Python 3 The Hard Way 学习 Python 3。

在做关于函数和文件的练习 20 时,你的任务是让研究人员知道seek 函数的作用。通过在线搜索,我遇到了一些关于此功能的概念,但我无法理解:

这是我在网上找到的关于seek()目的的解释:

Python 文件方法 seek() 将文件的当前位置设置为偏移量。

  • 在这种情况下,“文件的当前位置”是什么意思?

这是我在网上找到的关于tell()目的的解释:

Python 文件方法tell() 返回文件读/写指针在文件中的当前位置。

  • 在这种情况下,“文件读/写指针”是什么意思?
4

1 回答 1

0

您可以将文件视为一个字节序列(至少在您使用 将文件作为二进制文件打开时是这种情况mode='rb'),类似于bytearray存储在磁盘上的 a。当您第一次使用 打开文件时mode='rb',您当前位于或“指向”文件的开头,偏移量为 0,这意味着如果您发出 a readfor nbytes 您将读取文件的第一个 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
于 2021-01-02T15:54:51.583 回答