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