python包的数据缓存

我有一个python模块,该模块生成大型数据文件,我希望将其缓存在磁盘上以备将来使用.对于普通用户而言,缓存可能最终会占用数百MB的空间,但可以节省大量的计算时间.

这些文件不随模块一起分发,而是在第一次使用给定的参数集运行代码时生成.

到目前为止,我本人只是在使用单个文件模块,并将它们放在相对于模块(data /)的硬编码路径中.但是我现在需要使用distutils在Python包中分发此模块,我想知道是否有标准方法可以做到这一点.

我当时在想类似scipy.weave的已编译缓存-但想知道是否有更现代的支持方式来做到这一点.在* nix平台上,我希望它会放入〜/ .something,但是我不确定Windows等效的东西是什么.同样,这应该是可配置的,以便用户可以在更方便的情况下将其指向其他位置,或者在用户之间共享缓存目录.这样的配置文件应该如何工作?应该去哪里?

还是应该将其作为安装选项,是通过setup.py旁边的配置文件还是通过手动编辑setup.py进行设置,然后在安装之前在模块中对目录进行硬编码?

非常感谢任何指针…

解决方法:

您可以使用标准库模块ConfigParser来解析ini文件(或.rc文件,具体取决于您的区域性).要查找文件,os.path.expanduser是一个有用的函数,它在所有平台上都对“〜/ .mytoolrc”之类的路径执行正确的操作.要让用户覆盖事物的位置,可以通过os.environ使用环境变量.

上一篇:在Python程序包中需要BeautifulSoup-setup.py需要什么?


下一篇:JavaEE基础(03):Http请求详解,握手挥手流程简介