我有两个问题与加载数据的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