python pickle 读取文件
时间: 2023-09-14 21:12:06 浏览: 131
使用 `pickle.load()` 函数可以从文件中读取使用 `pickle.dump()` 函数写入的 Python 对象。
以下是一个示例代码:
```python
import pickle
# 从文件中读取 Python 对象
with open("data.pickle", "rb") as f:
data = pickle.load(f)
# 打印读取的数据
print(data)
```
其中,`data.pickle` 是存储 Python 对象的文件名,`"rb"` 参数表示以二进制模式打开文件进行读取。
注意,`pickle.load()` 函数会自动将读取的数据反序列化成 Python 对象,因此可以直接使用。但是,由于 pickle 可能会执行任意代码,因此在从未信任的源读取 pickle 数据时需要特别小心。
相关问题
python pickle 读取文件 获取文件长度
使用pickle读取文件并获取文件长度的代码示例:
```python
import os
import pickle
file_path = "example.pkl"
# 读取文件
with open(file_path, "rb") as f:
data = pickle.load(f)
# 获取文件长度
file_size = os.path.getsize(file_path)
print("文件长度:{} bytes".format(file_size))
```
在这个示例中,我们首先使用pickle模块读取文件,然后使用os模块的getsize函数获取文件长度。最后,我们打印文件长度。请确保文件存在并正确地打开以便读取和获取文件长度。
python pickle 读取文件 指针
使用 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` 中。这样,我们就能够在不改变指针位置的情况下读取同一个文件中的多个对象了。
阅读全文