欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python中cPickle類使用方法詳解

 更新時間:2018年08月27日 15:46:45   作者:怒河春醒  
這篇文章主要為大家詳細(xì)介紹了python中cPickle類的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

在python中,一般可以使用pickle類來進(jìn)行python對象的序列化,而cPickle提供了一個更快速簡單的接口,如python文檔所說的:“cPickle – A faster pickle”。

cPickle可以對任意一種類型的python對象進(jìn)行序列化操作,比如list,dict,甚至是一個類的對象等。而所謂的序列化,我的粗淺的理解就是為了能夠完整的保存并能夠完全可逆的恢復(fù)。在cPickle中,主要有四個函數(shù)可以做這一工作,下面使用例子來介紹。

1. dump: 將python對象序列化保存到本地的文件

import cPickle
 data = range(1000)
 cPickle.dump(data,open("test\\data.pkl","wb"))

dump函數(shù)需要指定兩個參數(shù),第一個是需要序列化的python對象名稱,第二個是本地的文件,需要注意的是,在這里需要使用open函數(shù)打開一個文件,并指定“寫”操作

2. load:載入本地文件,恢復(fù)python對象

data = cPickle.load(open("test\\data.pkl","rb")) 

同dump一樣,這里需要使用open函數(shù)打開本地的一個文件,并指定“讀”操作

3. dumps:將python對象序列化保存到一個字符串變量中

data_string = cPickle.dumps(data)

4. loads:從字符串變量中載入python對象

data = cPickle.loads(data_string)

5. pickle模塊使用的數(shù)據(jù)格式是python專用的,并且不同版本不向后兼容,同時也不能被其他語言說識別。要和其他語言交互,可以使用內(nèi)置的json包

使用pickle模塊你可以把Python對象直接保存到文件,而不需要把他們轉(zhuǎn)化為字符串,也不用底層的文件訪問操作把它們寫入到一個二進(jìn)制文件里。 pickle模塊會創(chuàng)建一個python語言專用的二進(jìn)制格式,你基本上不用考慮任何文件細(xì)節(jié),它會幫你干凈利落地完成讀寫?yīng)毾聿僮?,唯一需要的只是一個合法的文件句柄。

pickle模塊中的兩個主要函數(shù)是dump()和load()。dump()函數(shù)接受一個文件句柄和一個數(shù)據(jù)對象作為參數(shù),把數(shù)據(jù)對象以特定的格式保存 到給定的文件中。當(dāng)我們使用load()函數(shù)從文件中取出已保存的對象時,pickle知道如何恢復(fù)這些對象到它們本來的格式。

  • dumps()函數(shù)執(zhí)行和dump() 函數(shù)相同的序列化。取代接受流對象并將序列化后的數(shù)據(jù)保存到磁盤文件,這個函數(shù)簡單的返回序列化的數(shù)據(jù)。
  • loads()函數(shù)執(zhí)行和load() 函數(shù)一樣的反序列化。取代接受一個流對象并去文件讀取序列化后的數(shù)據(jù),它接受包含序列化后的數(shù)據(jù)的str對象, 直接返回的對象。

cPickle是pickle得一個更快得C語言編譯版本。

pickle和cPickle相當(dāng)于java的序列化和反序列化操作

#! /usr/local/env python
# -*- coding=utf-8 -*-

if __name__ == "__main__":
  import cPickle

#序列化到文件
obj = 123,"abcdedf",["ac",123],{"key":"value","key1":"value1"}
print obj
#輸出:(123, 'abcdedf', ['ac', 123], {'key1': 'value1', 'key': 'value'})
#r+ 讀寫權(quán)限 r+b 讀寫到二進(jìn)制文件
f = open(r"d:\a.txt","r+")
cPickle.dump(obj,f)
f.close()
f = open(r"d:\a.txt")
print cPickle.load(f)
#輸出:(123, 'abcdedf', ['ac', 123], {'key1': 'value1', 'key': 'value'})

#序列化到內(nèi)存(字符串格式保存),然后對象可以以任何方式處理如通過網(wǎng)絡(luò)傳輸
obj1 = cPickle.dumps(obj)
print type(obj1)
#輸出:<type 'str'>
print obj1
#輸出:python專用的存儲格式
obj2 = cPickle.loads(obj1)
print type(obj2)
#輸出:<type 'tuple'>
print obj2
#輸出:(123, 'abcdedf', ['ac', 123], {'key1': 'value1', 'key': 'value'})

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python中eval的用法及說明

    python中eval的用法及說明

    這篇文章主要介紹了python中eval的用法及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • Python多圖片合并PDF的方法

    Python多圖片合并PDF的方法

    今天小編就為大家分享一篇關(guān)于Python多圖片合并PDF的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • python中的繼承機(jī)制super()函數(shù)詳解

    python中的繼承機(jī)制super()函數(shù)詳解

    這篇文章主要介紹了python中的繼承機(jī)制super()函數(shù)詳解,super 是用來解決多重繼承問題的,直接用類名調(diào)用父類方法在使用單繼承的時候沒問題,但是如果使用多繼承,會涉及到查找順序、重復(fù)調(diào)用等問題,需要的朋友可以參考下
    2023-08-08
  • 基于Python編寫一個寶石消消樂小游戲

    基于Python編寫一個寶石消消樂小游戲

    快過年回家啦用,本文將為大家介紹一個用python編寫的寶石消消樂游戲用來哄小朋友,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下
    2022-01-01
  • 詳解python常用命令行選項與環(huán)境變量

    詳解python常用命令行選項與環(huán)境變量

    這篇文章主要介紹了python常用命令行選項與環(huán)境變量,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • python的多重繼承的理解

    python的多重繼承的理解

    這篇文章主要介紹了python的多重繼承的理解的相關(guān)資料,多重繼承不是多容易理解,這里舉例說明幫助大家學(xué)習(xí)參考,需要的朋友可以參考下
    2017-08-08
  • Python中操作MySQL入門實例

    Python中操作MySQL入門實例

    這篇文章主要介紹了Python中操作MySQL入門實例,本文講解了安裝、打開數(shù)據(jù)庫連接、插入數(shù)據(jù)、查詢數(shù)據(jù)、刪除數(shù)據(jù)等操作,需要的朋友可以參考下
    2015-02-02
  • 基于Python實現(xiàn)評論區(qū)抽獎功能詳解

    基于Python實現(xiàn)評論區(qū)抽獎功能詳解

    這篇文章主要為大家介紹了基于Python如何實現(xiàn)評論區(qū)抽獎的功能,文章的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定幫助,需要的朋友可以學(xué)習(xí)一下
    2021-12-12
  • 詳解如何使用opencv實現(xiàn)圖片相似度檢測

    詳解如何使用opencv實現(xiàn)圖片相似度檢測

    這篇文章主要為大家詳細(xì)介紹了如何使用opencv實現(xiàn)圖片相似度檢測,文中的示例代碼講解詳細(xì),對于我們學(xué)習(xí)人工智能有一定的幫助,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • Python異步編程入門教程指南

    Python異步編程入門教程指南

    Python作為一門流行的編程語言,提供了強(qiáng)大的異步編程支持,本文將深入探討Python異步編程的基礎(chǔ)概念、常用庫以及實際應(yīng)用,通過豐富的示例代碼,助你更全面地理解和應(yīng)用異步編程
    2024-01-01

最新評論