可以使用内置的pkgutil
包来使用它的pkgutil.get_data
来获取与包一起打包的数据
我的情况有点不同
我想允许一种独立于平台的方式,允许存储由我的包完成的数据,但不允许在安装时实际分发任何内容
当数据早于,比方说,1天,当一个新的转换正在进行时,它应该刷新这个缓存
代码可能有帮助:
import json
from datetime import datetime
from dateutil.relativedelta import relativedelta
cache_path = "XXX/here"
with open(cache_path) as f:
cached_data = json.load(f)
def convert(value, from_type, to_type):
pair = from_type + "-" to_type
now = datetime.now()
too_old = (now + relativedelta(days=1)).isoformat()
if pair not in cached_data or too_old < cached_data[pair]['last_updated']:
cached_data[pair] = get_new_value(pair)
with open(cache_path, "w") as f:
json.dump(cached_data, f)
return value * float(cached_data[pair]['value'])
那么如何选择cache_path
内置的
tempfile
模块将在这里帮助您删除/清理必须使用
delete=False
手动完成,因为您希望文件保持在文件句柄的范围之外默认情况下,文件位于
/tmp
或系统的临时目录下,可以进行调整。见docs相关问题 更多 >
编程相关推荐