Python提供一个标准的模块,称为pickle 。使用它你可以在一个文件中储存任何Python对象,之后你又可以把它完整无缺地取出来。这被称为 持久地 储存对象。
还有另一个模块称为cPickle ,它的功能和pickle 模块完全相同,只不过它是用C语言编写的,因此要快得多(比pickle 快1000倍)。你可以使用它们中的任一个,而我们在这里将使用cPickle 模块。记住,我们把这两个模块都简称为pickle 模块。
- #!/usr/bin/python
- # Filename: pickling.py
-
- import cPickle as p #rename the module cPickle to p,that is, p equil to cPickle
-
- shoplistfile = 'shoplist.data'
-
- shoplist = ['apple','mango','carrot']
-
- f = file(shoplistfile,'w')#create a file named shoplist.data to write something
- p.dump(shoplist, f) #write the object 'shoplist' to file f by using the module p
- f.close()
-
- del shoplist # remove the shoplist
-
- # Read back from the storage
- f = file(shoplistfile)
- #use function 'load' to get the returned object
- storedlist = p.load(f)
- print storedlist
import A as B语法,以便于我们可以使用更短的模块名称,将模块A重命名为B
在 pickle.dump(obj, file)中file必须是以write模式打开的对象,
dump 将一个对象储存在某个文件中
load 从文件中取回一个对象
为了在文件里储存一个对象,首先以写模式打开一个file 对象,然后调用储存器模块的dump 函数,把对象储存到打开的文件中。这个过程称为 储存 。
接下来,我们使用pickle 模块的load 函数的返回来取回对象。这个过程称为 取储存 。
|