最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在Python中marshal對(duì)象序列化的相關(guān)知識(shí)

 更新時(shí)間:2015年07月01日 12:12:22   作者:DarkBull  
這篇文章主要介紹了在Python中marshal對(duì)象序列化的相關(guān)知識(shí),是Python進(jìn)階學(xué)習(xí)中序列化相關(guān)的知識(shí),需要的朋友可以參考下

有時(shí)候,要把內(nèi)存中的一個(gè)對(duì)象持久化保存到磁盤上,或者序列化成二進(jìn)制流通過(guò)網(wǎng)絡(luò)發(fā)送到遠(yuǎn)程主機(jī)上。Python中有很多模塊提供了序列化與反序列化的功能,如:marshal, pickle, cPickle等等。今天就講講marshal模塊。

  •   注意: marshal并不是一個(gè)通用的模塊,在某些時(shí)候它是一個(gè)不被推薦使用的模塊,因?yàn)槭褂胢arshal序列化的二進(jìn)制數(shù)據(jù)格式還沒(méi)有文檔化,在不同版本的Python中,marshal的實(shí)現(xiàn)可能不一樣。也就是說(shuō),用python2.5序列為一個(gè)對(duì)象,用python2.6的程序反序列化所得到的對(duì)象,可能與原來(lái)的對(duì)象是不一樣的。但這個(gè)模塊存在的意義,正如Python手冊(cè)中所說(shuō):The marshal module exists mainly to support reading and writing the “pseudo-compiled” code for Python modules of .pyc files.

下面是marshal模塊中定義的一些與序列化/反序列化有關(guān)的函數(shù):
marshal.dump(value, file[, version])

將值寫入到一個(gè)打開(kāi)的輸出流里。參數(shù)value表示待序列化的值。file表示打開(kāi)的輸出流。如:以”wb”模式打開(kāi)的文件,sys.stdout或者os.popen。對(duì)于一些不支持序列類的類型,dump方法將拋出ValueError異常。要特別說(shuō)明一下,并不是所有類型的對(duì)象都可以使用marshal模塊來(lái)序列化/反序列化的。在python2.6中,支持的類型包括:None, integers, long integers, floating point numbers, strings, Unicode objects, tuple, list, set, dict, 和 code objects。對(duì)于tuple, list, set, dict等集合對(duì)象,其中的元素必須也是上述類型之一。
marshal.load(file)

執(zhí)行與marshal.dump相反的操作,將二進(jìn)制數(shù)據(jù)反序列為Python對(duì)象。下面是一個(gè)例子,演示這兩個(gè)方法的使用:
 

# coding=gbk
 
import  marshal ,  sys ,  os
 
lst  =  [ 1 ,  ( 2 ,  " string " ) ,  { " key " :  " Value " } ]
 
# 序列化到文件中
fle  =  open ( os . path . join ( os . getcwd ( ) ,  ' fle . txt ' ) ,  ' wb ' )
marshal . dump ( lst ,  fle )
fle . close ( )
 
# 反序列化
fle1  =  open ( os . path . join ( os . getcwd ( ) ,  ' fle . txt ' ) ,  ' rb ' )
lst1  =  marshal . load ( fle1 )
fle1 . close ( )
 
# 打印結(jié)果
print  lst
print  lst1
 
# ----  結(jié)果  ----
# [1,  (2,  'string'),  {'key':  'Value'}]
# [1,  (2,  'string'),  {'key':  'Value'}]
marshal.dumps(value[, version)

該方法與上面講的marshal.dump()功能類似,只是它返回的是序列化之后的二進(jìn)制流,而不是將這些數(shù)據(jù)直接寫入到文件中。
marsahl.load(string)

將二進(jìn)制流反序列化為對(duì)象。下面的一段代碼,演示這兩個(gè)方法的使用:
 

import  marshal ,  sys ,  os
 
lst  =  [ 1 ,  ( 2 ,  " string " ) ,  { " key " :  " Value " } ]
 
byt1  =  marshal . dumps ( lst )
lst1  =  marshal . loads ( byt1 )
 
# 打印結(jié)果
print  lst
print  lst1
 
# —-  結(jié)果  —-
# [1,  (2,  'string'),  {'key':  'Value'}]
# [1,  (2,  'string'),  {'key':  'Value'}]

更多關(guān)于marshal的內(nèi)容,請(qǐng)參考Python手冊(cè)。

相關(guān)文章

  • 基于Python輕松實(shí)現(xiàn)PDF轉(zhuǎn)圖片

    基于Python輕松實(shí)現(xiàn)PDF轉(zhuǎn)圖片

    PDF文件是我們?cè)谌粘9ぷ骱蛯W(xué)習(xí)中常用的文檔格式之一,但你知道嗎,你可以將PDF文件轉(zhuǎn)換為圖像,讓文檔變得更加生動(dòng)有趣,下面我們就來(lái)看看具體的實(shí)現(xiàn)方法吧
    2023-08-08
  • Python如何生成requirements.txt

    Python如何生成requirements.txt

    在 Python 項(xiàng)目中,requirements.txt 文件通常用于列出項(xiàng)目依賴的庫(kù)及其版本號(hào),本文主要介紹了Python生成requirements.txt的幾個(gè)常用方法,希望對(duì)大家有所幫助
    2025-02-02
  • Python查看多臺(tái)服務(wù)器進(jìn)程的腳本分享

    Python查看多臺(tái)服務(wù)器進(jìn)程的腳本分享

    這篇文章主要介紹了Python查看多臺(tái)服務(wù)器進(jìn)程的腳本分享,需要的朋友可以參考下
    2014-06-06
  • 帶你了解python裝飾器

    帶你了解python裝飾器

    Python中的裝飾器是你進(jìn)入Python大門的一道坎,不管你跨不跨過(guò)去它都在那里。Python中的裝飾器的概念經(jīng)常會(huì)讓人搞得一頭霧水,所以今天就好好來(lái)分析一下python中的裝飾器
    2017-06-06
  • 分分鐘入門python語(yǔ)言

    分分鐘入門python語(yǔ)言

    分分鐘學(xué)會(huì)一門語(yǔ)言之Python篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 推薦值得學(xué)習(xí)的12款python-web開(kāi)發(fā)框架

    推薦值得學(xué)習(xí)的12款python-web開(kāi)發(fā)框架

    這篇文章主要介紹了值得學(xué)習(xí)的12款python-web開(kāi)發(fā)框架,幫助大家更好的理解和學(xué)習(xí)Python web開(kāi)發(fā),感興趣的朋友可以了解下
    2020-08-08
  • Python排序算法實(shí)例代碼

    Python排序算法實(shí)例代碼

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)排序算法的相關(guān)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • python新式類和經(jīng)典類的區(qū)別實(shí)例分析

    python新式類和經(jīng)典類的區(qū)別實(shí)例分析

    這篇文章主要介紹了python新式類和經(jīng)典類的區(qū)別,結(jié)合實(shí)例形式分析了python新式類和經(jīng)典類的功能、區(qū)別與使用方法,需要的朋友可以參考下
    2020-03-03
  • Python3+OpenCV實(shí)現(xiàn)簡(jiǎn)單交通標(biāo)志識(shí)別流程分析

    Python3+OpenCV實(shí)現(xiàn)簡(jiǎn)單交通標(biāo)志識(shí)別流程分析

    這篇文章主要介紹了Python3+OpenCV實(shí)現(xiàn)簡(jiǎn)單交通標(biāo)志識(shí)別,主要思路是解析XML文檔,根據(jù)<name>標(biāo)簽進(jìn)行分類,如果是直行、右轉(zhuǎn)、左轉(zhuǎn)、停止就把它從原圖中裁剪下來(lái)并重命名,感謝的朋友跟隨小編一起看看示例代碼
    2021-12-12
  • Pandas?DataFrame添加一行數(shù)據(jù)的幾種方法

    Pandas?DataFrame添加一行數(shù)據(jù)的幾種方法

    在處理數(shù)據(jù)分析和數(shù)據(jù)科學(xué)項(xiàng)目時(shí),經(jīng)常會(huì)使用到Python中的pandas庫(kù)來(lái)進(jìn)行數(shù)據(jù)操作和分析,其中DataFrame是pandas庫(kù)中最重要的數(shù)據(jù)結(jié)構(gòu)之一,這篇文章主要給大家介紹了關(guān)于Pandas?DataFrame添加一行數(shù)據(jù)的幾種方法,需要的朋友可以參考下
    2024-08-08

最新評(píng)論

东宁县| 应城市| 阜南县| 高台县| 青州市| 高邑县| 丰县| 高唐县| 龙川县| 九寨沟县| 错那县| 威信县| 东城区| 临江市| 宁强县| 桐梓县| 湘乡市| 滁州市| 昌吉市| 平度市| 封丘县| 涡阳县| 三原县| 云浮市| 白城市| 桂林市| 张家口市| 永登县| 元阳县| 辰溪县| 油尖旺区| 博兴县| 剑阁县| 葫芦岛市| 钟山县| 隆德县| 太原市| 乌拉特后旗| 通化市| 云林县| 彰武县|