我有兩個問題與加載數據的Python,兩個工作正常,但他們需要太多的時間來運行,有時「殺」是結果(與第一個)。快速文件加載python
我有一個很大的壓縮文本文件,我做這樣的事情:
import gzip import cPickle as pickle f = gzip.open('filename.gz','r') tab={} for line in f: #fill tab with open("data_dict.pkl","wb") as g: pickle.dump(tab,g) f.close()
我必須做我在以前的腳本創建的字典一些操作
import cPickle as pickle with open("data_dict.pkl", "rb") as f: tab = pickle.load(f) f.close() #operations on tab (the dictionary)
您是否有其他解決方案?也許不是那些涉及YAML或JSON的...
醃汁很慢,可能很不安全。但是,您至少應該添加提示以使用最快的pickle協議(請參閱文檔):pickle.HIGHEST_PROTOCOL作爲轉儲的第三個參數。根據你真正做的事情,還有很多其他的選擇可以加快速度。 (例如,使用一個sqlite數據庫)。 – schlenk
是否將所有內容加載到內存中而不是流式傳輸?如果是這樣,你可能想看看流媒體泡菜(https://code.google.com/p/streaming-pickle/)。 – user2141650