Python——pickle模塊(永久存儲)


一、作用

  講字典、列表、字符串等對象進行持久化,存儲到磁盤上,方便以后使用。

二、dump()方法

pickle.dump(對象,文件,[使用協議])

作用:將要持久化的數據“對象”,保存到“文件中”

  • obj:使用協議有3種,索引0位ASCII,1是舊時二進制,2是新式二進制,默認使用0。

二、dumps()方法

pickle.dumps(obj[, protocol])

作用:將obj對象序列化為string形式,而不是存入文件中

  • obj:想要序列化的obj對象
  • protocal:如果該項省略,則默認為0。如果為負值或HIGHEST_PROTOCOL,則使用最高的協議版本

四、load()方法

pickle.load(文件)

作用:從“文件”中,讀取字符串,將他們反序列化轉換為Python的數據對象。

五、loads()

作用:從string中讀出序列化前的obj對象

六、實例

import pickle
class Person:
    def __init__(self, n, a):
        self.name = n
        self.age = a
    def show(self):
        print(self.name + "_" + str(self.age))
aa = Person("JGood", 2)
aa.show()
f = open('data.pk1', 'wb')  # 必須以二進制打開,否則有錯
pickle.dump(aa, f, 0)
l1 = [1, 2, 3]
pickle.dump(l1, f, 0)
f.close()  # 必須先關閉,否則pickle.load(f1)會出現EOFError: Ran out of input
f = open('data.pk1', 'rb')
bb = pickle.load(f)
bb.show()
l2 = pickle.load(f)
print(l2)
f.close()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM