python pickle 读取文件 指针
时间: 2023-10-13 14:28:55 浏览: 130
用python实现文件的读取
使用 Python 中的 `pickle` 模块读取文件时,指针的位置会自动移动到文件末尾。这是因为 `pickle.load()` 函数会读取整个文件内容,直到文件末尾。可以使用 `pickle.Unpickler` 类来控制指针的位置。
以下代码演示了如何使用 `pickle.Unpickler` 类来读取文件,并且不会改变指针的位置:
```python
import pickle
with open('file.pkl', 'rb') as f:
unpickler = pickle.Unpickler(f)
obj1 = unpickler.load()
f.seek(0)
obj2 = unpickler.load()
print(obj1)
print(obj2)
```
在这个例子中,我们打开文件 `file.pkl` 并创建了一个 `pickle.Unpickler` 对象 `unpickler`。然后,我们首先调用 `unpickler.load()` 函数,将指针移动到文件末尾,并将文件中的第一个对象读取到了变量 `obj1` 中。接着,我们使用 `f.seek(0)` 函数将指针移回文件开头,然后再次调用 `unpickler.load()` 函数,将文件中的第二个对象读取到了变量 `obj2` 中。这样,我们就能够在不改变指针位置的情况下读取同一个文件中的多个对象了。
阅读全文