2011-04-06 36 views

回答

6

將所有「州」數據放在一個地方,並使用pickle

pickle模塊爲Python對象結構的序列化和反序列化實現了一個基本但強大的算法。 「Pickling」是將Python對象層次結構轉換爲字節流的過程,「unpickling」是相反的操作,即字節流轉換回對象層次結構。酸洗(和取消)也稱爲「序列化」,「編組」,或者「扁平」,但是,爲了避免混淆,這裏使用的術語是「酸洗」和「不沾」。

+0

我還沒有機會嘗試它,但這聽起來像我所需要的。謝謝 – 2011-04-07 12:24:04

+1

我怎樣才能找到我所有的「狀態」數據?我認爲這不是對這個問題的直接回答。 – sergzach 2016-01-12 19:09:56

3

如果要保存所有內容,包括當前正在執行的整個名稱空間和代碼行以便隨時重新啓動,則沒有標準庫模塊可以執行此操作。

正如另一張海報所說,泡菜模塊可以將幾乎所有東西都保存到一個文件中,然後重新加載,但是您必須在泡菜模塊周圍專門設計程序(即保存「狀態」 - 包括變量等 - 在一個班級)。

0

如果您確定使用OOP,請考慮爲每個輸出序列化版本(使用pickle)的類創建一個方法來存檔。然後添加第二種方法來加載數據的實例,如果pickle文件在那裏,則調用load方法而不是處理方法。 我對ML使用這種方法,它真的讓我的工作流程成型。