我遇到两个限制的问题,可以通过提升一个或另一个来轻松解决,但是,我想看看是否有解决方案。
注意:对于下面的内容,我可以互换地使用字典/文件/数据库
我有一个大型字典,我将其存储到YAML文件(149K),该文件作为音频标签的可读数据库。
使用数据库的程序需要在运行时对其进行更新。目前,这涉及在内存中进行更改然后将整体写入文件,然后运行第二个程序,该程序根据数据库内容更新某些值,然后将其读回内存。问题是这很慢(而且很难看)而且我想要更快的东西。
我知道这可以通过使用像SQLite这样的“真正的”关系数据库引擎来解决,但是我希望数据库在文本中可读。
另一种解决方案可能是仅在内存中运行,然后将程序包含在try / catch中,如果程序提前终止,则将字典转储到磁盘。但这导致检查和测试,我不想打扰。理想情况下,我可以异步和按需进行更改,没有副作用(并且速度快!)。
我可能会问太多。但是,如果Python中有一种方法只通过编写两个字符串(或dicts)的差异来修改原始文件,那么这将大大加快速度。我简要地查看了difflib
和filecmp
,但似乎都没有。
还是我还没有看到另一种解决方案?