0
可以使用内置的pkgutil
包来使用它的pkgutil.get_data
来获取与包一起打包的数据。使用缓存的Python包
我的情况有点不同。
我想允许一个独立于平台的方式来允许存储由我的包完成的数据,但实际上并没有在安装时分发任何东西。
当数据比我们说的更早时,比如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
?
问题是在/ tmp中它们会在重新启动后被删除。它不应该是一个tmp文件。那么我们将在哪里存储它? – PascalVKooten
由你决定。根据文档,目录路径可以调整。通常,在Linux数据文件中,在/ opt或/ var/opt下或在正在运行的用户家中。 Windows我不能说,用户的“家”目录也许。 – danny