在python中,一般可以使用pickle類來進行python對象的序列化,而cPickle提供了一個更快速簡單的接口,如python文檔所說的:“cPickle -- A faster pickle”。
cPickle可以對任意一種類型的python對象進行序列化操作,比如list,dict,甚至是一個類的對象等。而所謂的序列化,我的粗淺的理解就是為了能夠完整的保存并能夠完全可逆的恢復。在cPickle中,主要有四個函數可以做這一工作,下面使用例子來介紹。
1, dump: 將python對象序列化保存到本地的文件。
代碼如下:
>>> import cPickle
>>> data = range(1000)
>>> cPickle.dump(data,open("test//data.pkl","wb"))
dump函數需要指定兩個參數,第一個是需要序列化的python對象名稱,第二個是本地的文件,需要注意的是,在這里需要使用open函數打開一個文件,并指定“寫”操作。
2. load:載入本地文件,恢復python對象
代碼如下:
>>> data = cPickle.load(open("test//data.pkl","rb"))
同dump一樣,這里需要使用open函數打開本地的一個文件,并指定“讀”操作
3. dumps:將python對象序列化保存到一個字符串變量中。
代碼如下:
>>> data_string = cPickle.dumps(data)
4. loads:從字符串變量中載入python對象
代碼如下:
>>> data = cPickle.loads(data_string)
新聞熱點
疑難解答