我有一个程序(PatchDock),它从参数文件中获取输入,并生成一个输出文件。运行这个程序很费时间,我想缓存过去运行的结果,这样我就不需要两次运行相同的参数。
我能够将输入和输出文件解析为适当的数据结构。例如,输入文件被解析为类似字典的对象。输入键都是字符串,值是原始数据类型(整数、字符串和浮点数)。
我的方法
我的第一个想法是使用输入文件的 md5 哈希作为shelve
数据库中的键。但是,这无法捕获具有完全相同输入的缓存文件,但输入文件中存在一些细微差别(注释、间距、参数顺序等)。
散列解析的参数对我来说似乎是最好的方法。但我能想到的从字典中获取唯一哈希的唯一方法是对排序的字符串表示进行哈希处理。
问题
散列参数字典的字符串表示似乎是实现我的最终目标的一种迂回方式 - 将唯一输入值键入到指定输出。有没有更直接的方法来实现这个缓存系统?
理想情况下,我希望在 Python 中实现这一目标。