只需使用 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 中,并且具有简单的界面和应用程序。它可以很好地扩展,如果你达到了它不能扩展的地步,用更高端的数据库替换它很简单