【发布时间】:2012-10-07 10:16:25
【问题描述】:
我经常处理需要通过网络访问的大型数据文件(主要通过 NFS,但有时也通过 CIFS)。出于性能原因,最好将这些文件缓存在本地硬盘上以最大程度地减少网络使用。
所以基本上我正在寻找一个自动处理本地缓存的文件对象,类似于以下内容:
import CachedFileObject as cfo
cfo.set_local_cache_dir("/tmp")
handle = cfo.open("/nfs/server1/bigdatafile.nc", "r") # copy file to /tmp, open the copy
# do stuff with the filehandle
del handle # delete the local copy
我真的只需要这个来阅读文件。如果应该有一种简单的方法来获取/实现文件创建(甚至写入),那将是一个奖励。
非常感谢任何想法
【问题讨论】:
-
第一次打开时复制整个文件的开销您是否满意?
-
如果有办法绕过该开销,那将是最棒的 -- 但是,如果这不可能/太难实现,我可以忍受开销
-
我确定您已经考虑过这一点,但只是将其放入其中,对于文件更新/创建,您需要在某个时候将更改同步回原始文件。要允许并发访问,您可能还需要考虑可能存在多个写入实例的竞争条件。
-
当然,写作会很困难。基本上,我只需要阅读,如问题中所述。我编辑以强调这一点。
标签: python file caching file-io