多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 储存器 Python提供一个标准的模块,称为`pickle`。使用它你可以在一个文件中储存**任何**Python对象,之后你又可以把它完整无缺地取出来。这被称为 持久地 储存对象。 还有另一个模块称为`cPickle`,它的功能和`pickle`模块完全相同,只不过它是用C语言编写的,因此要快得多(比`pickle`快1000倍)。你可以使用它们中的任一个,而我们在这里将使用`cPickle`模块。记住,我们把这两个模块都简称为`pickle`模块。 ``` #!/usr/bin/python # Filename: pickling.py import cPickle as p #import pickle as p shoplistfile = 'shoplist.data' # the name of the file where we will store the object shoplist = ['apple', 'mango', 'carrot'] # Write to the file f = file(shoplistfile, 'w') p.dump(shoplist, f) # dump the object to a file f.close() del shoplist # remove the shoplist # Read back from the storage f = file(shoplistfile) storedlist = p.load(f) print storedlist ``` (源文件:[code/pickling.py](code/pickling.py)) ## 输出 ``` $ python pickling.py ['apple', 'mango', 'carrot'] ``` ## 它如何工作 首先,请注意我们使用了`import..as`语法。这是一种便利方法,以便于我们可以使用更短的模块名称。在这个例子中,它还让我们能够通过简单地改变一行就切换到另一个模块(`cPickle`或者`pickle`)!在程序的其余部分的时候,我们简单地把这个模块称为`p`。 为了在文件里储存一个对象,首先以写模式打开一个`file`对象,然后调用储存器模块的`dump`函数,把对象储存到打开的文件中。这个过程称为 储存 。 接下来,我们使用`pickle`模块的`load`函数的返回来取回对象。这个过程称为 取储存 。