December 28, 2013

【Python】一時変数をファイルに保存しておく

 1755x500程度のデータを扱っているんですが,SQL発行してデータを取得するのに恐ろしい時間がかかるので,なんとか取り回し良くできないものか?と思って関数を作りました.

 この関数は,呼び出されると同一ディレクトリ内にval_name.npyという名前のファイルがないかを検索し,もしあればそこから値を読み出して返し,なければfuncでわたされた関数を実行して値を取得,ディレクトリに保存しつつ,呼出し元に値を返します.
import os
import numpy as np

def loadIfExists(val_name, func, *arg):
	path = './' + val_name + '.npy'
	if os.path.exists(path):
		return np.load(path)
	else:
		res = func(*arg)
		np.save(path, res)
		return res
codes = loadIfExists('codes', getStockCodes)
のような使い方をします.
 あまり深く考えずに,値の取得に時間のかかる関数をこれでくるんでおけば,関数の実行が初回のみになるので,その後の呼出しが高速になります.
 ちょい便利.

k_yon at 12:12│Comments(0)TrackBack(0)clip!

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 
現状報告
 KiCad解説本の重版が決定しました!ありがとうございます♪.(2016/12/10)

自己紹介
yoneken
logo
 ロボットの研究・開発をしています。

続きを読む

連絡先は
ad

Syndicate this site
 2012年からKiCad日本語版バイナリのメンテナもしています.
来てくれた人たち
  • 今日:
  • 昨日:
  • 累計:

ショップリンク
嬉しいコメント
記事について
 このブログ記事の著作権は全てyonekenに属します。
 転載や個別記事へのリンクはご自由にどうぞ。連絡は必要ありません。
 記事の内容は無保証です。古い記事の内容は当時と状況が変わっている場合があります。
 内容に関する質問はコメント欄でもらえると、他の人にも役立ちます。
記事検索
月別
リア友リンク