背景
我们有很多数据文件存储在我们在python中处理的网络驱动器上。出于性能原因,我通常在处理时将文件复制到本地SSD。我希望自动实现这一点,所以每当我尝试打开文件时,如果它没有存储在本地,它将获取远程版本,理想情况下还会保留某种计时器以在一段时间后删除文件。这些文件几乎不会被更改,因此我不需要实际的同步功能。
功能
总结我正在寻找的功能是:
对我来说,编写一段能够实现这一目标的代码并不困难,但是在可能的情况下,我更愿意依赖现有的项目,因为这通常会产生更多样化的最终结果,并使我的任何一个其他用户可以轻松获得自己的改进。
问题
我已经搜索了python本地文件缓存,文件同步等术语,但我发现的主要是处理函数返回值的缓存。我有点惊讶,因为我认为这是一个相当普遍的问题,因此我的问题是:是否有一些我忽略的东西,更重要的是,是否有任何描述此功能的技术术语可以帮助我进行研究。
提前谢谢你, 格雷格斯波尔森
- 更新 -
由于其他专有软件包,我不得不使用Windows,所以解决方案自然必须支持这一点。
答案 0 :(得分:0)
使用a tutorial on the anaconda blog和the official documentation看一下fsspec远程缓存。引用前者:
在本文中,我们将展示[fsspec]缓存远程内容的新功能,在首次读取后保留本地副本以便更快地查找。
他们举了一个使用方法的例子:
import fsspec of = fsspec.open("filecache://anaconda-public-datasets/iris/iris.csv", mode='rt', cache_storage='/tmp/cache1', target_protocol='s3', target_options={'anon': True}) with of as f: print(f.readline())
在第一次调用时,文件将被下载,存储到缓存中并提供。在第二次调用时,将从本地文件系统下载该文件。
我还没有使用过,但是我需要它,并且看起来很有希望。