sqlite3を使用して、タイムスタンプとして保存するだけです。これは、遭遇した(そして開発した)アプリケーションの90%(おそらく誇張された)が、後で報告する必要があるかもしれないデータを保存する方法です(ログファイルのようなものを除いて)
import sqlite3,time
db = sqlite3.connect("my_database.sql") #you can put whatever ... created if not exist
conn = db.cursor()
conn.execute("CREATE TABLE IF NOT EXISTS Activities (timestamp int, name text);")
def AddActivity(activityName):
conn.execute("INSERT INTO Activities (timestamp,name) VALUES (?,?)",(time.time(),activityName))
db.commit()
def GetAllActivitiesOnDate(month,day,year):
start_time = time.mktime((year,month,day,0,0,0,0,0,0))
end_time = time.mktime((year,month,day,23,59,0,0,0,0)) #use 1 for last argument if you live somewhere with dst
conn.execute("SELECT * FROM Activities WHERE timestamp > ? AND timestamp < ?",(start_time,end_time))
return conn.fetchall()
その後、あなたは次のようなことをします
AddActivity("Jumping Jacks")
time.sleep(10)
AddActivity("Push Ups")
import datetime
today = datetime.datetime.now()
activities = GetAllActivitiesOnDate(today.month,today.day,today.year)
print "Found %d Entries"%len(activities)
for activity in activities:
print "Activity %s @ %s"%(activity[1],time.strftime("%x %X",
time.gmtime(int(activity[0]))))
このタイプのストレージは非常に拡張性が高く、必要な方法を正確に照会するのが簡単です...そしてsqliteはpythonに含まれており、簡単なインターフェイスとアプリケーションを備えています。それはうまくスケーリングし、スケーリングしないポイントに達した場合、それをハイエンドのDBに置き換えるのは簡単です