最近在背英语单词,背得我开始怀疑人生。想想应该有方法的记忆,搜索了一波后发现艾宾浩斯记忆法很适合,于是便开始傻乎乎的手工制作记忆表。
OK,花了半个小时手工做完第一张表后,接下来需要按行归纳。再归纳四五行后,发现这样下去不仅得花一两个小时,眼睛也承受不住啊,我这突然意识到我为什么不写代码让计算机给我做。。。我是不是sa。。。
import xlrd
import xlwt
import datetime
#读取表格
data =xlrd.open_workbook(r"/Users/lnl/Desktop/艾宾浩斯记忆.xls")
#取出第一张表
table = data.sheets()[0]
#得到表格的行列数及第1行值(我的表格第1行为列属性,第0行是表名)
rows=table.nrows
cols =table.ncols
row1 =table.row_values(1)
#创建表格
workbook =xlwt.Workbook(encoding ="utf-8",style_compression=0)
sheet =workbook.add_sheet("表格1",cell_overwrite_ok=True)
#制作列属性
sheet.write(0,1,'初次记忆')
sheet.write(0,2,'复习')
#制作行属性(时间)
for i in range(1,rows-1):
#获取现在的日期+偏移日期->转化为(%m-%d)月-日字符串
now_time = (datetime.datetime.now()+datetime.timedelta(days=i)).strftime('%m-%d')
sheet.write(i,0,now_time)
#填写每个单元值:之前做好的表值为‘O’则将列属性填写入‘初次记忆列’,值为‘O’或‘√’填写入复习列
for i in range(2,rows):
cell = ''
for j in range(1,cols):
if(table.cell_value(i,j)=='O'):
sheet.write(i-1,1,'O '+row1[j])
if(table.cell_value(i,j)=='O' or table.cell_value(i,j)=='√'):
cell +='O '+row1[j]+' '
sheet.write(i-1,2,cell)
workbook.save(r"/Users/lnl/Desktop/艾宾浩斯记忆2.xls")