2011-11-24 116 views
1

我在Python中編寫了一個複雜的樹結構,我厭倦了每次運行代碼時創建樹對象並填充數據。製作「持久」對象

那麼,有沒有辦法讓你的對象在Python中「持久」?對於「耐用」,我的意思是如果有一種方法可以將所有對象保存爲文件中的字節,那麼當我再次運行代碼時,我可以創建並填充字節文件中的所有對象,恢復狀態我最後一次離開了代碼。

我猜可能有一個帖子有這個相同的問題,但我想不出一個更好的英語「耐用」術語。

+4

「持久」是你正在尋找的詞。看看'shelve'和'pickle'模塊。 – Gabe

+0

@加貝,那是我尋找的魔法詞! – juliomalegria

回答

5

您可以使用pickle模塊到serialize您的數據(這是將您的內存中表示轉換爲可寫入磁盤的內容的一般短語)。您在the Python documentation閱讀更多。

最簡單的代碼看起來像這樣你的對象存儲在一個文件中:

pickle.dump(myobject, open('myfile', 'w')) 

並讀取它放回:

myobject = pickle.load(open('myfile', 'r')) 
+0

什麼是這種文件通常的文件名後綴? '.dat'? – juliomalegria

+1

我不認爲有一個標準,儘管我已經看到'.pck'在這裏和那裏使用。 – Codemonk

+2

我通常用'.pkl'來看這些(這就是我使用的)。 –

1

對於簡單的持久性,我建議shelve模塊。