📌  相关文章
📜  如何使用 Pickle 在Python保存和加载变量?(1)

📅  最后修改于: 2023-12-03 15:38:05.571000             🧑  作者: Mango

如何使用 Pickle 在Python保存和加载变量?

简介

Pickle 是Python内置的序列化模块,它可以将Python对象(如列表、字典、函数)转换成字节流,保存到文件或转发到网络。使用 Pickle,可以在不改变对象结构的情况下将对象转化为一系列字节,可以方便地将数据存储到文件或网络中,便于后续读取和操作,是Python中非常重要的模块之一。

保存变量

使用 Pickle 保存Python对象非常简单,只需要调用 dumpdumps 方法即可。下面分别介绍这两个方法的使用方法。

方法一:使用dump

dump 方法可以将Python对象保存到文件中。示例如下:

import pickle

some_var = {'name': 'Alice', 'age': 25}

# 打开文件
with open('data.pickle', 'wb') as f:
    # 将对象保存到文件
    pickle.dump(some_var, f)

以上代码中,我们通过 pickle.dump(some_var, f)some_var 对象保存到文件 data.pickle 中。需要注意的是,在使用 dump 方法时,需要传入两个参数,第一个参数为要序列化的对象,第二个参数为打开的文件对象,必须使用二进制方式打开。

方法二:使用dumps

dumps 方法可以将Python对象转换成字节流。示例如下:

import pickle

some_var = {'name': 'Alice', 'age': 25}

# 将对象转化为字节流
serialized = pickle.dumps(some_var)

# ... 将字节流保存到文件或发送到网络中

以上代码中,我们通过 pickle.dumps(some_var)some_var 对象转换成字节流,并将其保存到变量 serialized 中。需要注意的是,在使用 dumps 方法时,只需要传入一个参数,即要序列化的对象。

加载变量

使用 Pickle 加载Python对象同样很简单,只需要调用 loadloads 方法即可。下面分别介绍这两个方法的使用方法。

方法一:使用load

load 方法可以从文件中加载Python对象。示例如下:

import pickle

# 打开文件
with open('data.pickle', 'rb') as f:
    # 从文件中加载对象
    some_var = pickle.load(f)
    print(some_var)

以上代码中,我们通过 pickle.load(f) 从文件 data.pickle 中加载 some_var 对象,并输出其内容。需要注意的是,在使用 load 方法时,只需要传入一个参数,即打开的文件对象,必须使用二进制方式打开。

方法二:使用loads

loads 方法可以将字节流转换成Python对象。示例如下:

import pickle

# 加载字节流
serialized = b'\x80\x04\x95\x15\x00\x00\x00\x00\x00\x00\x00}\x94(\x8c\x04name\x94\x8c\x05Alice\x94\x8c\x03age\x94K\x19\x86\x94.'

# 将字节流转换成对象
some_var = pickle.loads(serialized)
print(some_var)

以上代码中,我们通过 pickle.loads(serialized) 将字节流 serialized 转换成 some_var 对象,并输出其内容。需要注意的是,在使用 loads 方法时,只需要传入一个参数,即要反序列化的字节流。

总结

以上就是使用 Pickle 在Python中保存和加载变量的方法。使用 Pickle 可以方便地将Python对象序列化到文件或字节流中,并在需要时进行反序列化,是Python编程中重要的工具之一。