我经常使用pickle.dump()
来保存Python 2.7中的大文件。在我的代码中,我有一个.pickle
文件,我不断更新代码的每次迭代,每次都覆盖相同的文件。
但是,我偶尔会遇到崩溃(例如来自服务器问题)。这可能发生在pickle转储的中间,导致pickle不完整,pickle文件不可读,并且我丢失了过去迭代中的所有数据。
我想我能做到的一种方法是为每次迭代保存一个.pickle
文件,并在以后合并所有这些文件。是否有任何其他推荐的方法或写入磁盘的最佳实践,这些方法对崩溃很有效?
答案 0 :(得分:0)
您有效地进行备份,因为您的目标是相同的:灾难恢复,尽可能少地丢失工作。
在备份中,有这些标准做法,因此请选择最适合您的方法:
答案 1 :(得分:0)
是否有任何其他推荐方法,或最佳做法?
让我提一下很酷的Mike McKearn的 dill
套餐
import dill as pickle
pickle.dump_session( aRotatingIndexFileNAME ) # saves python session-state
# # session is worth
# # many computing [CPU-core * hrs]
如果需要,只需
import dill as pickle; pickle.load_session( aLastSessionStateFileNAME )
使用旋转文件名是一种常见的最佳实践,可以存档一些深度的回滚功能,因此值得在此重复。
dill
确实拯救了我,包括故意使用相同的调用签名,以便轻松替换为python项目。