python 开发小工具_Python小工具系列

#Python小工具系列#

我开辟这个系列主要是强迫我自己梳理目前写的代码之后产生的各种小工具,并且能够聚合在一起把它升级成工具包。

5dff823734f8c.jpgPython

今天给大家介绍一个自动缓存装饰器(file_cache)。

我知道大家肯定会说在Python的functools中有lru_cache装饰器可以使用。lru_cache是使用的内存缓存,然而对于持久化的需求就不够用了。

持久化的缓存,灵活轻便就是我写这个工具的初衷。有时候对于一个demo或者简单的加速,使用Redis做缓存太重了。

因此磁盘缓存的装饰器就应运而生了。你只需要把它放入你的tool文件夹中,并在被需要的地方import,给需要缓存的函数上加上该装饰器,就搞定了,so easy。

该缓冲器是结合硬盘缓存的小工具,其只依赖python基础包,故可以说是无依赖,唯一的要求就是必须存在/tmp文件夹的系统。这一点可以在后期修改。

这个装饰器代码分类三部分,第一部分路径处理函数(get_cache_path),第二部分核心缓存函数(_cache),以及最后一部分装饰器函数(file_cache).

路径处理函数(get_cache_path)

5dff8243a7108.jpgget_cache_path

该函数主要是在'/tmp/'文件夹中生成一个当天日期的文件夹,如果已经存在就直接跳过创建过程,并且返回该文件夹的路径。

核心缓存函数(_cache)

5dff824fa837a.jpg_cache

该函数主要获取被装饰的函数的名称和参数信息,在指定缓存文件夹中查找该文件,如果存在就直接返回缓存文件中的值,否则会直接运行函数,并且将其缓存下来,之后再返回。

装饰器函数(file_cache)

5dff825b007aa.jpg

装饰器主程序,主要实现了自适应参数装饰器效果,既可以以不带参数装饰器方式使用,也可以以带装饰器形式使用。

用法

在需要的地方引用,然后直接是装饰器方式使用即可。如下图所示

5dff82667e78c.jpg示例

代码获取地址:httPS://raw.githubusercontent.com/sn0wfree/CodersWheel/v0.1.2/Tools/file_cache.py

编程语言原本是被设计成专门使用在计算机上的,但它们也可以用来定义算法或者数据结构。正是因为如此,程序员才会试图使程序代码更容易阅读。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值