熱線電話:13121318867

登錄
首頁精彩閱讀python使用marshal模塊序列化實例
python使用marshal模塊序列化實例
2017-11-16
收藏

python使用marshal模塊序列化實例

本文實例講述了python使用marshal模塊序列化的方法,分享給大家供大家參考。具體方法如下:
先來看看下面這段代碼:    
import marshal
data1 = ['abc',12,23,'jb51']  #幾個測試數據
data2 = {1:'aaa',"b":'dad'}
data3 = (1,2,4)
 
output_file = open("a.txt",'wb')#把這些數據序列化到文件中,注:文件必須以二進制模式打開
marshal.dump(data1,output_file)
marshal.dump(data2,output_file)
marshal.dump(data3,output_file)
output_file.close()
 
 
input_file = open('a.txt','rb')#從文件中讀取序列化的數據
#data1 = []
data1 = marshal.load(input_file)
data2 = marshal.load(input_file)
data3 = marshal.load(input_file)
print data1#給同志們打印出結果看看
print data2
print data3
 
 
outstring = marshal.dumps(data1)#marshal.dumps()返回是一個字節串,該字節串用于寫入文件
open('out.txt','wb').write(outstring)
 
file_data = open('out.txt','rb').read()
real_data = marshal.loads(file_data)
print real_data

結果:
    
['abc', 12, 23, 'jb51']
{1: 'aaa', 'b': 'dad'}
(1, 2, 4)
['abc', 12, 23, 'jb51']

marshel模塊的幾個函數官方描述如下:

The module defines these functions:
marshal.dump(value, file[, version])
Write the value on the open file. The value must be a supported type. The file must be an open file object such as sys.stdout or returned by open() or os.popen(). It must be opened in binary mode ('wb' or 'w+b').
If the value has (or contains an object that has) an unsupported type, a ValueError exception is raised — but garbage data will also be written to the file. The object will not be properly read back by load().
New in version 2.4: The version argument indicates the data format that dump should use (see below).
marshal.load(file)
Read one value from the open file and return it. If no valid value is read (e.g. because the data has a different Python version's incompatible marshal format), raise EOFError, ValueError or TypeError. The file must be an open file object opened in binary mode ('rb' or 'r+b').
Warning
If an object containing an unsupported type was marshalled with dump(), load() will substitute None for the unmarshallable type.
marshal.dumps(value[, version])
Return the string that would be written to a file by dump(value, file). The value must be a supported type. Raise a ValueError exception if value has (or contains an object that has) an unsupported type.
New in version 2.4: The version argument indicates the data format that dumps should use (see below).
marshal.loads(string)
Convert the string to a value. If no valid value is found, raise EOFError, ValueError or TypeError. Extra characters in the string are ignored.
In addition, the following constants are defined:
marshal.version
Indicates the format that the module uses.

marshal.version的用處:marshal不保證不同的python版本之間的兼容性,所以保留個版本信息的函數.
希望本文所述對大家Python程序設計的學習有所幫助。

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢