python中cPickle用法例子分享


在Python中,`cPickle`模块(从Python 3.0开始已重命名为`_pickle`,并且`pickle`模块现在提供了C语言优化的版本,通常作为默认实现)用于序列化和反序列化Python对象结构。这里我将提供一个使用`pickle`(Python 3中的等效模块)的例子,因为`cPickle`的概念在Python 3中已经被`pickle`模块所包含。

### 序列化(将Python对象转换为字节流)


import pickle

# 定义一个简单的Python对象
data = {'a': [1, 2.0, 3, 4+6j],
        'b': ("character string", b"byte string"),
        'c': {None, True, False}}

# 将对象序列化到文件中
with open('data.pickle', 'wb') as f:
    pickle.dump(data, f)

print("对象已序列化到文件。")

### 反序列化(将字节流转换回Python对象)


# 从文件中反序列化对象
with open('data.pickle', 'rb') as f:
    loaded_data = pickle.load(f)

print("加载的数据:", loaded_data)

注意:

- 序列化通常用于存储或传输Python对象。

- 使用`pickle`时要小心,因为它可以执行任意代码(如果反序列化的数据来自不受信任的来源)。

- 示例中使用了`'wb'`和`'rb'`模式来分别表示写入二进制和读取二进制文件。

虽然您询问的是`cPickle`的用法,但上述`pickle`模块的使用示例在Python 3中是完全等效的,并且通常推荐在Python 3中使用`pickle`模块。