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